java - Jersey 的 NoClassDefFoundError

标签 java jersey jax-rs

由于下面的 NoClassDefFoundError 错误,我的应用程序返回 500 错误。我使用的是 Weblogic 12.1.2,其中包括 Jersey。

我的pom文件:

   <properties>
        <com.sun.jersey.version>1.17.1</com.sun.jersey.version>
...
            <dependency>
                <groupId>org.atmosphere</groupId>
                <artifactId>atmosphere-jersey</artifactId>
                <version>0.7.2</version>
                <type>jar</type>
            </dependency>
           <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-atom-abdera</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-atom</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-multipart</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-spring</artifactId>
                <version>${com.sun.jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-guice</artifactId>
                <version>${com.sun.jersey.version}</version>
                <type>jar</type>
            </dependency>


]] Root cause of ServletException.
java.lang.NoClassDefFoundError: com/sun/jersey/core/impl/provider/header/WriterUtil
        at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.toString(MediaTypeProvider.java:66)
        at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.toString(MediaTypeProvider.java:53)
        at com.sun.jersey.spi.container.ContainerResponse.getHeaderValue(ContainerResponse.java:213)
        at com.sun.jersey.spi.container.servlet.WebComponent$Writer.writeHeaders(WebComponent.java:347)
        at com.sun.jersey.spi.container.servlet.WebComponent$Writer.writeStatusAndHeaders(WebComponent.java:335)
        Truncated. see log file for 

完整的堆栈跟踪

]] Root cause of ServletException.
java.lang.NoClassDefFoundError: com/sun/jersey/core/impl/provider/header/WriterUtil
        at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.toString(MediaTypeProvider.java:66)
        at com.sun.jersey.core.impl.provider.header.MediaTypeProvider.toString(MediaTypeProvider.java:53)
        at com.sun.jersey.spi.container.ContainerResponse.getHeaderValue(ContainerResponse.java:213)
        at com.sun.jersey.spi.container.servlet.WebComponent$Writer.writeHeaders(WebComponent.java:347)
        at com.sun.jersey.spi.container.servlet.WebComponent$Writer.writeStatusAndHeaders(WebComponent.java:335)
        Truncated. see log file for complete stacktrace

最佳答案

如果你想使用Weblogic提供的库,那么依赖关系应该标记为

<scope>provided</scope>

否则,您将引入外部依赖项并使用这些依赖项部署您的应用程序...换句话说,您将使用外部依赖项(而不是 Weblogic 为运行时提供的库)来编译和打包您的应用程序。

关于java - Jersey 的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33266392/

相关文章:

java - 从 JAXB 和 Jersey 生成更多类似 json 的 json

java - HTTP 500 错误失败,状态代码为 200

java - Jax-rs json漂亮的输出

java - 如何在执行 jar 时给出参数值?

java - 如何处理 SSL 握手

java - 如何更新 java 文档库?

java - 匹配字符串可选结尾的正则表达式

java - 如何在使用 Jersey 时在界面上注释 JAX-RS

java - Mongo Connection 在 RESTful API 中创建多次且从未发布

java - Jersey ......如何记录所有异常,但仍然调用 ExceptionMappers