2017-04-26 140 views
0

我正在将spring mvc和jersey rest客户端项目1和项目2作为一个spring核心.Throws异常,同时在tomcat服务器中执行代码。java.lang.LinkageError:ClassCastException:在Spring MVC项目中

例外: 陷入抛出ClassCastException异常:试图castjar:文件:/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目录/球衣核-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> 

回答

0

您有在这两个项目jersy存在。这将使不同的类加载器加载jersy类,因此你会得到类转换异常。确保jersy只加载一次。你可以通过将你的jersy jar放入服务器库并使用maven scope来实现。