java - Jersey 给出运行时错误 java.lang.NoClassDefFoundError : org/glassfish/jersey/server/ResourceConfig

标签 java rest jax-rs jersey-2.0

我将 Jersey 服务定义为:

private static HttpServer createHttpServer() throws IOException {
    final ResourceConfig resourceConfig = new ResourceConfig(Api.class);

    return JdkHttpServerFactory.createHttpServer(URI, resourceConfig);

}

这编译得很好。但是当我尝试运行它时它会抛出 java.lang.NoClassDefFoundError:

        Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/jersey/server/ResourceConfig
        at EmbeddedHTTPServer.createHttpServer(Unknown Source)
        at EmbeddedHTTPServer.main(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.server.ResourceConfig
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

这些是库:

$ ls lib
commons-collections-3.2.1.jar  jsoup-1.8.3.jar
commons-dbcp-1.4.jar           logback-classic-1.1.3.jar
commons-email.jar              logback-core-1.1.3.jar
commons-io-2.4.jar             mail.jar
commons-lang3-3.0.1.jar        mysql-connector-java-5.1.17.jar
gdata-core.jar                 quartz-2.2.1.jar
javaee-web-api.jar             rome-1.5.1.jar
jdom2-2.0.6.jar                rome-modules-1.5.1.jar
jersey-container-jdk-http.jar  rome-utils-1.5.1.jar
jersey-server.jar              slf4j-api-1.7.12.jar
json.jar

环境:

  1. Ubuntu
  2. 甲骨文 JDK 1.8
  3. JAX-RS 2

有什么想法吗?

谢谢。

最佳答案

看起来 Jersey 仅使用 lib 文件夹中的 jars 即可正确编译,但在运行时需要 ext 文件夹中的 jars。

在 JAX-RI 包中的 ext 文件夹中添加 jars 后问题得到解决。

关于java - Jersey 给出运行时错误 java.lang.NoClassDefFoundError : org/glassfish/jersey/server/ResourceConfig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328722/

相关文章:

java - 将 JAXB 注释类用于 JAXWS 服务

java - 酒店使用数组

java - 批处理文件不会运行 Java Main 类

java - 如何将具有全名的文件放入java中的数组列表中?

使用 Mime 类型的 Rest 版本控制 - */* 的默认版本

php - 跨域 AJAX 的 Luracast ReSTLer 回调参数

java - 带有 xml 或 json 作为参数的 restful webservice

tomcat - 一个 jetty-web.xml 中的多个上下文路径用于在 Tomcat 服务器上运行的 JAX-RS 应用程序

java - 启动时加载和 Jersey

java - 休息响应中重复的 Swagger 鉴别器字段