java.lang.LinkageError:ClassCastException:在spring MVC项目中

时间:2017-04-26 06:20:43

标签: java maven spring-mvc linkageerror

我正在使用spring mvc和jersey rest客户端项目1和项目2作为弹簧核心。在tomcat服务器中执行代码时抛出异常。

例外: 捕获throwable ClassCastException:尝试castjar:file:/project1/web/webroot/WEB-INF/lib/jersey-core-1.13.jar!/javax/ws/rs/ext/RuntimeDelegate.classtojar:file:/ project2 / lib /jersey-core-1.13.jar!/javax/ws/rs/ext/RuntimeDelegate.class     java.lang.LinkageError:ClassCastException:尝试castjar:file:/project1/web/webroot/WEB-INF/lib/jersey-core-1.13.jar!     /javax/ws/rs/ext/RuntimeDelegate.classtojar:file:/project2/lib/jersey-core-1.13.jar!/javax/ws/rs/ext/RuntimeDelegate.class

我的项目2个maven依赖项:

    <properties>
            <jersey.version>1.13</jersey.version>
        </properties>

        <dependencies>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20090211</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>2.4.0</version>
            </dependency>  

项目1 maven依赖项:

    <properties>
        <jersey.version>1.13</jersey.version>
    </properties>

    <dependencies>
            <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-core</artifactId>
          <version>${jersey.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
          <version>${jersey.version}</version>
          <exclusions>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>   
        <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-json</artifactId>
          <version>${jersey.version}</version>
        </dependency>
        <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-server</artifactId>
          <version>${jersey.version}</version>
        </dependency>
        <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-servlet</artifactId>
          <version>${jersey.version}</version>
        </dependency>
        <dependency>
          <groupId>com.sun.jersey.contribs</groupId>
          <artifactId>jersey-spring</artifactId>
          <version>${jersey.version}</version>
        </dependency>
        <dependency>
           <groupId>com.sun.jersey.jersey-test-framework</groupId>
           <artifactId>jersey-test-framework-core</artifactId>
            <version>${jersey.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
        </dependency>
<dependency>
    <groupId>org.springframework.security.oauth</groupId>
    <artifactId>spring-security-oauth2</artifactId>
    <version>2.0.6.RELEASE</version>
     <exclusions>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-client</artifactId>
                </exclusion>
            </exclusions>
</dependency>
<dependency>
    <groupId>net.sourceforge.javacsv</groupId>
    <artifactId>javacsv</artifactId>
    <version>2.0</version>
</dependency>

1 个答案:

答案 0 :(得分:0)

你在这两个项目中都有出色的表现。这将使不同的类加载器加载jersy类,因此您将获得类转换异常。确保jersy仅加载一次。你可以把你的jersy jar放在服务器库中并使用提供的maven范围来做到这一点。