2011-04-04 12 views
8

मेरे पास पहले से ही साबुन आधारित वेब सेवा है जो axis2 1.3 के साथ चल रही है। आज, हमारे पास जर्सी 1.6 का उपयोग कर रीस्टफुल वेब सेवा विकसित करने की योजना है।मैं एक वेब एप्लिकेशन में जर्सी 1.6 और अक्ष 2 1.3 निष्पादित करने के दौरान "java.lang.LinkageError: लोडर बाधा उल्लंघन" को कैसे हल कर सकता हूं?

मैंने अक्ष 2 और जर्सी 1.6 के साथ वेब एप्लिकेशन (युद्ध फ़ाइल) बनाया और इसे jboss5.1.0 पर तैनात करने का प्रयास किया।

शुरू करने के बाद jboss मैंने त्रुटि संदेश नीचे देखा।

com.sun.jersey.api.container.ContainerException: Unable to create resource 
    at com.sun.jersey.server.impl.resource.SingletonFactory$Singleton.init(SingletonFactory.java:139) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl$9.f(WebApplicationImpl.java:533) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl$9.f(WebApplicationImpl.java:531) 
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.getResourceComponentProvider(WebApplicationImpl.java:531) 
..... 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at com.sun.jersey.server.spi.component.ResourceComponentConstructor._construct(ResourceComponentConstructor.java:200) 
    at com.sun.jersey.server.spi.component.ResourceComponentConstructor.construct(ResourceComponentConstructor.java:182) 
    at com.sun.jersey.server.impl.resource.SingletonFactory$Singleton.init(SingletonFactory.java:137) 
    ... 87 more 
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.bind.JAXBElement.<init>(Ljavax/xml/namespace/QName;Ljava/lang/Class;Ljava/lang/Object;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, com/sun/jersey/server/wadl/WadlGeneratorImpl, and the class loader (instance of <bootloader>) for resolved class, javax/xml/bind/JAXBElement, have different Class objects for the type javax/xml/namespace/QName used in the signature 
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:194) 
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:397) 
    at com.sun.jersey.server.wadl.WadlBuilder.generateMethod(WadlBuilder.java:166) 
    at com.sun.jersey.server.wadl.WadlBuilder.generateResource(WadlBuilder.java:308) 
    at com.sun.jersey.server.wadl.WadlBuilder.generateResource(WadlBuilder.java:271) 
    at com.sun.jersey.server.wadl.WadlBuilder.generate(WadlBuilder.java:107) 
    at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.getApplication(WadlApplicationContextImpl.java:76) 
    at com.sun.jersey.server.impl.wadl.WadlResource.<init>(WadlResource.java:76) 
    ... 94 more 
14:23:18,155 ERROR [[/oasapi]] Servlet /oasapi threw load() exception 
java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.bind.JAXBElement.<init>(Ljavax/xml/namespace/QName;Ljava/lang/Class;Ljava/lang/Object;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, com/sun/jersey/server/wadl/WadlGeneratorImpl, and the class loader (instance of <bootloader>) for resolved class, javax/xml/bind/JAXBElement, have different Class objects for the type javax/xml/namespace/QName used in the signature 
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:194) 
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:397) 
    at com.sun.jersey.server.wadl.WadlBuilder.generateMethod(WadlBuilder.java:166) 
..... 

कौन मुझे सिखा सकता है कि समस्या क्या है और मैं इस समस्या को कैसे हल कर सकता हूं?

धन्यवाद

+0

http://frankkieviet.blogspot.com/2009/03/javalanglinkageerror-loader-constraint.html –

उत्तर

4

javax.xml.namespace.QName वर्ग के दो संस्करणों अपने वातावरण में प्रदान की जा रही हैं: एसई 6.

  • जावा में

    1. पहला है दूसरे के लिए प्रकट होता जेबॉस
  • +0

    जवाब के लिए धन्यवाद यह समस्या तब होती है जब मैंने अक्ष 2 और जर्सी के साथ युद्ध किया। अगर मैंने जर्सी के साथ युद्ध किया, तो ऐसा नहीं हुआ। – user670097

    +7

    और आप इसे कैसे हल कर सकते हैं? मुझे एक ही समस्या है, लेकिन मैं अक्ष जार को नहीं हटा सकता, क्योंकि मुझे अन्य वर्गों की आवश्यकता है (और जेडीके में नहीं हैं)। – greuze

    1

    मुझे लगता है कि आपको जार फाइल निर्भरताओं के साथ समस्या है। आप उपयोग कर रहे हैं Maven जो पुस्तकालय संघर्ष पता लगाने के लिए प्रयास करते हैं, मैं Maven के साथ यह करना: ~ $ mvn dependency:tree कि उत्पादन की तरह पाठ की कुछ पंक्तियाँ:

    [INFO] [dependency:tree {execution: default-cli}] 
    [INFO] org.braman.app:jersey-rest-wadl:war:1.0-SNAPSHOT 
    [INFO] +- log4j:log4j:jar:1.2.12:provided 
    [INFO] +- com.sun.jersey:jersey-server:jar:1.8:compile 
    [INFO] | +- asm:asm:jar:3.1:compile 
    [INFO] | \- com.sun.jersey:jersey-core:jar:1.8:compile 
    [INFO] +- com.sun.jersey:jersey-json:jar:1.8:compile 
    [INFO] | +- org.codehaus.jettison:jettison:jar:1.1:compile 
    [INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.7.1:compile 
    [INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.7.1:compile 
    [INFO] | +- org.codehaus.jackson:jackson-jaxrs:jar:1.7.1:compile 
    [INFO] | \- org.codehaus.jackson:jackson-xc:jar:1.7.1:compile 
    [INFO] \- javax.servlet:servlet-api:jar:2.5:provided 
    

    और यह उत्पादन से मैं पुस्तकालय निर्भरता का विश्लेषण कर सकते हैं।

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
        <modelVersion>4.0.0</modelVersion> 
        <groupId>org.braman.app</groupId> 
        <artifactId>jersey-rest-wadl</artifactId> 
        <packaging>war</packaging> 
        <version>1.0-SNAPSHOT</version> 
        <name>Jersey Restful Service WADL Example</name> 
        <properties> 
         <junit.version>3.8.1</junit.version> 
         <log4j.version>1.2.12</log4j.version> 
         <jersey.version>1.8</jersey.version> 
         <servlet_api.version>2.5</servlet_api.version> 
        </properties> 
        <dependencies> 
         <dependency> 
          <groupId>log4j</groupId> 
          <artifactId>log4j</artifactId> 
          <version>${log4j.version}</version> 
          <scope>provided</scope> 
         </dependency> 
         <dependency> 
          <groupId>com.sun.jersey</groupId> 
          <artifactId>jersey-server</artifactId> 
          <version>${jersey.version}</version> 
          <exclusions> 
           <exclusion> 
            <groupId>stax</groupId> 
            <artifactId>stax-api</artifactId> 
           </exclusion> 
          </exclusions> 
         </dependency> 
         <dependency> 
          <groupId>com.sun.jersey</groupId> 
          <artifactId>jersey-json</artifactId> 
          <version>${jersey.version}</version> 
          <exclusions> 
           <exclusion> 
            <groupId>com.sun.xml.bind</groupId> 
            <artifactId>jaxb-impl</artifactId> 
           </exclusion> 
           <exclusion> 
            <groupId>stax</groupId> 
            <artifactId>stax-api</artifactId> 
           </exclusion> 
          </exclusions> 
         </dependency> 
         <dependency> 
          <groupId>javax.servlet</groupId> 
          <artifactId>servlet-api</artifactId> 
          <version>${servlet_api.version}</version> 
          <scope>provided</scope> 
         </dependency> 
        </dependencies> 
        <repositories> 
         <repository> 
          <id>maven2-repository.java.net</id> 
          <name>Java.net Repository for Maven</name> 
          <url>http://download.java.net/maven/2</url> 
          <layout>default</layout> 
         </repository> 
         <repository> 
          <id>wadl-repository</id> 
          <name>WADL Maven Repository</name> 
          <url>https://wadl.dev.java.net/nonav/repository/</url> 
         </repository> 
        </repositories> 
        <build> 
         <finalName>jrw</finalName> 
         <plugins> 
          <plugin> 
           <groupId>org.apache.maven.plugins</groupId> 
           <artifactId>maven-compiler-plugin</artifactId> 
           <version>2.3.1</version> 
           <configuration> 
            <source>1.6</source> 
            <target>1.6</target> 
           </configuration> 
          </plugin> 
          <plugin> 
           <groupId>org.codehaus.mojo</groupId> 
           <artifactId>jboss-maven-plugin</artifactId> 
           <version>1.5.0</version> 
           <configuration> 
            <jbossHome>/data/Work/servers/jboss/jboss-5.1.0.GA</jbossHome> 
            <serverName>default</serverName> 
            <fileName>target/jrw.war</fileName> 
           </configuration> 
          </plugin> 
         </plugins> 
        </build> 
    </project> 
    

    मुझे आशा है कि यह तुम्हारी मदद करेगा: वैसे इस नमूने Maven pom.xml है।

    1

    मैंने जर्सी 1.5 के साथ इस मुद्दे को देखा (जेबॉस 5 में एक आरईएसटी एक्सएमएल फ़ीड बनाना) और जर्सी 1.9 में अपग्रेड करना इसे हल किया।

    1

    मुझे एक समान समस्या थी। मुझे पता चला कि जर्सी द्वारा प्रदान की गई जैक्सबी पुस्तकालयों और जेबॉस द्वारा प्रदान किए गए लोगों के बीच एक संघर्ष था।

    यहां मेरे pom.xml के प्रासंगिक भाग से नीचे है जो मेरी समस्या का समाधान करता है। नोट मैं jersey 1.9 का उपयोग अपने उत्तर में @ जोन राज्य के रूप में करता हूं।

    ... 
        <dependency> 
         <groupId>com.sun.jersey</groupId> 
         <artifactId>jersey-server</artifactId> 
         <version>1.9</version> 
        </dependency> 
    
        <dependency> 
         <groupId>com.sun.jersey</groupId> 
         <artifactId>jersey-json</artifactId> 
         <version>1.9</version> 
         <exclusions> 
          <exclusion> 
           <artifactId>jaxb-api</artifactId> 
           <groupId>javax.xml.bind</groupId> 
          </exclusion> 
          <exclusion> 
           <artifactId>jaxb-impl</artifactId> 
           <groupId>com.sun.xml.bind</groupId> 
          </exclusion> 
         </exclusions> 
        </dependency> 
        ... 
    

    JBoss 5.1.0
    जर्सी 1,9

    0
    <dependency> 
         <groupId>org.apache.poi</groupId> 
         <artifactId>poi-ooxml</artifactId> 
         <version>3.12</version> 
         <exclusions> 
          <exclusion> 
           <groupId>stax</groupId> 
           <artifactId>stax-api</artifactId> 
          </exclusion> 
         </exclusions> 
        </dependency> 
    
    संबंधित मुद्दे