【发布时间】:2015-03-21 03:32:36
【问题描述】:
我在我的 java 应用程序中使用嵌入式 Jetty 服务器。我想同时在嵌入式码头服务器中动态使用 Web 应用程序(war 文件)和 Servlet。为此,我正在使用码头库中提供的 WebAppContext 和 ServletContextHandler 。服务器启动后,只能通过浏览器访问 servlet。谁能给出同时使用两者的正确方法?
除了上面两个之外,我还想添加WebSocketHandler、CometDServlet,以及另外一个静态网站。感谢是否有人能告诉我这样做的正确方法。
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class JettyTest {
public static void main(String[] args) throws Exception {
Server server = new Server(8081);
ContextHandlerCollection contexts = new ContextHandlerCollection();
ServletContextHandler main = new ServletContextHandler(server, "/", true, false);
main.addServlet(new ServletHolder(new HttpServlet() {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().write("main");
}
}), "/main");
WebAppContext webAppContext = new WebAppContext("test.war", "/test");
contexts.addHandler(webAppContext);
contexts.addHandler(main);
server.setHandler(contexts);
server.start();
server.join();
}
}
【问题讨论】:
标签: java servlets web-applications embedded-jetty