我正在尝试使用jetty构建一个自包含的Web服务器。由于我发现手动管理所需的罐子有点困难,我决定使用Maven。 通过以下一些示例和教程我结束了这个:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.3.0.RC0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.3.0.RC0</version>
</dependency>
它不起作用:运行程序会在
上抛出类未找到的异常org.eclipse.jetty.util.Decorator
我尝试了不同的版本,其他缺少类。 启动服务器的代码是:
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
Server jettyServer = new Server(8383);
jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(
org.glassfish.jersey.servlet.ServletContainer.class, "/*");
jerseyServlet.setInitOrder(0);
// Tells the Jersey Servlet which REST service/class to load.
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames",
EntryPoint.class.getCanonicalName());
try {
jettyServer.start();
jettyServer.join();
} finally {
jettyServer.destroy();
}
由于它也使用泽西岛,我也依赖于球衣,我没有发布,因为错误似乎是在码头。这不应该是困难的,但确实如此。有什么想法吗?
答案 0 :(得分:6)
我遇到了同样的问题。查看 jersey-container-jetty-http ,您可以注意到它在旧版本中使用 jetty-util 。所以,一旦你排除了这种依赖关系(如下面的例子),它应该可以正常工作。
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>${version.jersey}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 1 :(得分:1)
与9.3.0.M0版相同的问题 jersey-container-jetty-http不帮我。 解决方案:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>9.3.0.M0</version>
</dependency>