Java ClassNotFoundException:org.eclipse.jetty.util.Decorator
我正在尝试使用jetty构建一个自包含的web服务器。因为我发现手动管理所需的jar有点困难,所以我决定使用Maven。 通过以下示例和教程,我以以下内容结束:Java ClassNotFoundException:org.eclipse.jetty.util.Decorator,java,maven,jersey,jetty,embedded-jetty,Java,Maven,Jersey,Jetty,Embedded Jetty,我正在尝试使用jetty构建一个自包含的web服务器。因为我发现手动管理所需的jar有点困难,所以我决定使用Maven。 通过以下示例和教程,我以以下内容结束: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>9.3.0.RC0</version>
<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>
我尝试了不同的版本,还有其他缺少的类。
启动服务器的代码如下所示:
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();
}
因为它也在使用Jersey,我也依赖Jersey,我没有发布,因为错误似乎在jetty中。不应该这么难,但确实如此。有什么想法吗?我也有同样的问题。查看jersey容器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>
org.glassfish.jersey.containers
泽西集装箱码头http
${version.jersey}
org.eclipse.jetty
码头
版本9.3.0.M0存在相同的问题。泽西集装箱码头http不帮我。 解决方案:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>9.3.0.M0</version>
</dependency>
org.eclipse.jetty
码头
9.3.0.M0
jetty有比RC0更新的版本。不确定更新到更高版本是否有用。是否考虑过使用Dropwizard?它有所有必要的依赖项(如jetty、jersey、jackson)捆绑在一起,非常容易使用。@JaroslawPawlak我是一个.NET的家伙,今天我花了一整天的时间来尝试这些东西。我感到很痛苦和沮丧。c#works中的这种东西不会发生。正如@Goibniu所说,9.3.0.RC0
是一个不稳定的/测试版/测试版。使用更稳定的版本(9.3.6.v20151106
是最新版本)。此外,当您遇到错误/异常时,您应该在问题中包含整个stacktrace(这有助于回答此类问题),您的pom文件中是否定义了更多的依赖项?您使用的是什么java版本?我已经在pom文件中添加了org.glassfish.jersey.containers依赖项,它可以工作(我正在使用java8)。
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>9.3.0.M0</version>
</dependency>