【发布时间】:2019-04-25 12:06:04
【问题描述】:
我正在运行带有球衣容器的嵌入式码头。我正在测试我是否可以前往 '/hello' 来读取我的 servlet,它可以请求调度和另一个 url '/entry/test' 来进入我的入口点类。其中只有一个基于最后添加的处理程序起作用。
我试图推理出类似于:embedded jetty server does not run both servlet and webapp
ServletContextHandler contextHandler = new ServletContextHandler(
ServletContextHandler.SESSIONS);
contextHandler.setContextPath("/*");
Server jettyServer = new Server(8980);
WebAppContext webappcontext = new WebAppContext();
File warPath = new File( System.getProperty("user.dir"), "src/main/resources");
webappcontext.setWar(warPath.getAbsolutePath());
webappcontext.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed",
"false");
webappcontext.addServlet(new ServletHolder(new MyServlet()), "/hello");
ServletHolder jerseyServlet = contextHandler.addServlet(
org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter( "jersey.config.server.provider.classnames",
EntryPoint.class.getCanonicalName());
HandlerList handlerCollection = new HandlerList();
//handlerCollection.setHandlers(new Handler[] { contextHandler,webappcontext });
handlerCollection.setHandlers(new Handler[] { webappcontext,contextHandler });
// Based on which handler was added last, i am able to view /hello or /entry/test
jettyServer.setHandler(handlerCollection);
try {
jettyServer.start();
jettyServer.join();
} finally {
jettyServer.destroy();
}
/hello 显示我的 servlet 页面和 /entry/test 查看入口点类内容
【问题讨论】:
标签: jersey embedded-jetty