【发布时间】:2015-08-10 15:43:15
【问题描述】:
这里似乎有很多问题,但没有一个对我有帮助.... 尝试将单个 Java 类作为起点,使用 Jersey 运行嵌入式 Jetty,以提供网页和 JSON 接口......但是,即使第一步也未能提供多个页面。
这很好用
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", EntryPoint.class.getCanonicalName());
但添加其他内容失败。如何提供提供不同内容类型的多个页面? 是在单个 EntryPoint 类中添加内容的唯一解决方案吗?
提前感谢任何提示需要改变它
public class App {
public static void main(String[] args) throws Exception {
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
Server jettyServer = new Server(8080);
jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", EntryPoint.class.getCanonicalName());
ServletHolder helloWorldServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
helloWorldServlet.setInitOrder(1);
helloWorldServlet.setInitParameter("jersey.config.server.provider.classnames", HelloWorldService.class.getCanonicalName());
try {
jettyServer.start();
jettyServer.join();
} catch (Exception e){
System.out.println("Failed running jettyServer with " + e.getMessage());
} finally {
jettyServer.destroy();
}
}
}
【问题讨论】:
-
您创建了一个 ServletHolder,但您是否将其添加到 ServletContextHandler,即
context.addServlet(jerseyServlet)?如果你能提供更多的代码,人们会有更好的参考来帮助你。 -
尝试了很多。希望完整尝试的添加代码可以解释它
-
我想我必须放弃并通过一个入口点球衣提供商做所有事情
-
使用
ServerProperties.PROVIDER_CLASSNAMES而不是jersey.config.server.provider.classnames。
标签: java jersey embedded-jetty