You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Timothy R J Langford <ti...@multicom.co.uk> on 2008/12/10 18:25:14 UTC

IncompatibleClassChangeError with WSDL2Java XMLBean Generated Client

Hello,

I am using axis2 wsdl2java to generate an XML Beans binding client from 
a customers WSDL schema. This mostly seems to be working fine; the 
request I am testing returns the correct response and I can navigate 
most of the returned structure using the java object model. However my 
tests revealed that invoking one of the 'getter methods' causes a 
'java.lang.IncompatibleClassChangeError' error, whilst others are fine:


java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at 
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplClass(SchemaTypeImpl.java:1709)
    at 
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplConstructor(SchemaTypeImpl.java:1725)
    at 
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createUnattachedNode(SchemaTypeImpl.java:1853)
    at 
org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createElementType(SchemaTypeImpl.java:1021)
    at 
org.apache.xmlbeans.impl.values.XmlObjectBase.create_element_user(XmlObjectBase.java:893)
    at org.apache.xmlbeans.impl.store.Xobj.getUser(Xobj.java:1657)
    at org.apache.xmlbeans.impl.store.Xobj.find_element_user(Xobj.java:2062)
    at 
com.travel.core.response.impl.ResponseHeaderImpl.getTrackingInfo(Unknown 
Source)
    at 
com.travel.client.travelapp.CoreAssertions.checkTripsResponseHeader(CoreAssertions.java:83)


So in other words; I can programatically access all of the objects in 
the following unmarshall XML except for 'getTrackingInfo()' which cause 
the exception above.


  <header xsi:type="ns3:ResponseHeader" xmlns="http://XXXXX" 
xmlns:ns3="http://response.core.fab.xmltravel.com">
    <localisation xmlns="http://XXXXX">
      <language>en</language>
    </localisation>
    <target xmlns="http://XXXXX">TEST</target>
    <timingInfo xmlns="http://XXXXX">
      <millisSpentIn>4643</millisSpentIn>
      
<requestReceivedTimestamp>2008-12-10T17:01:37.382Z</requestReceivedTimestamp>
      
<responseSentTimestamp>2008-12-10T17:01:42.025Z</responseSentTimestamp>
    </timingInfo>
    <trackingInfo xmlns="http://XXXXX">
      <requestId>yi3VWLhA_Hel9iHUYp_Db4xF</requestId>
    </trackingInfo>
    <userInfo xsi:type="UserInfo" xmlns="http://XXXXX">
      <agent>XXXXX</agent>
      <username>XXXXX</username>
    </userInfo>
  </header>


I have searched the forum for the exception but they don't seem 
relevant. I am new to these tools. Under what situations can a single 
element fail in such a way and how to fix it? Hoping some can help.


Thank you for your time.


Tim

 


-- 
Timothy R J Langford - MEng. (Hons)
Senior Software Engineer 
Multicom Products Ltd.

Tel: +44 (0)117 9081250


Re: IncompatibleClassChangeError with WSDL2Java XMLBean Generated Client

Posted by Timothy R J Langford <ti...@multicom.co.uk>.
Hello,

Ok. It is the morning after and things are easier with a fresh head. I 
stopped using my build file and went through the build process 
separately and the issue vanished.  I tracked down a problem in the 
build process where the target wsdl was not being downloaded 
successfully when I thought it was. So I guess the issue must have been 
a minor change in the service not being reflected in the client.

Thanks for all who took time to look at my issue.


Tim




Timothy R J Langford wrote:
> Hello,
>
> I am using axis2 wsdl2java to generate an XML Beans binding client 
> from a customers WSDL schema. This mostly seems to be working fine; 
> the request I am testing returns the correct response and I can 
> navigate most of the returned structure using the java object model. 
> However my tests revealed that invoking one of the 'getter methods' 
> causes a 'java.lang.IncompatibleClassChangeError' error, whilst others 
> are fine:
>
>
> java.lang.IncompatibleClassChangeError: Implementing class
>    at java.lang.ClassLoader.defineClass1(Native Method)
>    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>    at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>    at java.lang.ClassLoader.defineClass1(Native Method)
>    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>    at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>    at java.lang.Class.forName0(Native Method)
>    at java.lang.Class.forName(Class.java:242)
>    at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplClass(SchemaTypeImpl.java:1709) 
>
>    at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplConstructor(SchemaTypeImpl.java:1725) 
>
>    at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createUnattachedNode(SchemaTypeImpl.java:1853) 
>
>    at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createElementType(SchemaTypeImpl.java:1021) 
>
>    at 
> org.apache.xmlbeans.impl.values.XmlObjectBase.create_element_user(XmlObjectBase.java:893) 
>
>    at org.apache.xmlbeans.impl.store.Xobj.getUser(Xobj.java:1657)
>    at 
> org.apache.xmlbeans.impl.store.Xobj.find_element_user(Xobj.java:2062)
>    at 
> com.travel.core.response.impl.ResponseHeaderImpl.getTrackingInfo(Unknown 
> Source)
>    at 
> com.travel.client.travelapp.CoreAssertions.checkTripsResponseHeader(CoreAssertions.java:83) 
>
>
>
> So in other words; I can programatically access all of the objects in 
> the following unmarshall XML except for 'getTrackingInfo()' which 
> cause the exception above.
>
>
>  <header xsi:type="ns3:ResponseHeader" xmlns="http://XXXXX" 
> xmlns:ns3="http://response.core.fab.xmltravel.com">
>    <localisation xmlns="http://XXXXX">
>      <language>en</language>
>    </localisation>
>    <target xmlns="http://XXXXX">TEST</target>
>    <timingInfo xmlns="http://XXXXX">
>      <millisSpentIn>4643</millisSpentIn>
>      
> <requestReceivedTimestamp>2008-12-10T17:01:37.382Z</requestReceivedTimestamp> 
>
>      
> <responseSentTimestamp>2008-12-10T17:01:42.025Z</responseSentTimestamp>
>    </timingInfo>
>    <trackingInfo xmlns="http://XXXXX">
>      <requestId>yi3VWLhA_Hel9iHUYp_Db4xF</requestId>
>    </trackingInfo>
>    <userInfo xsi:type="UserInfo" xmlns="http://XXXXX">
>      <agent>XXXXX</agent>
>      <username>XXXXX</username>
>    </userInfo>
>  </header>
>
>
> I have searched the forum for the exception but they don't seem 
> relevant. I am new to these tools. Under what situations can a single 
> element fail in such a way and how to fix it? Hoping some can help.
>
>
> Thank you for your time.
>
>
> Tim
>
>
>
>


-- 
Timothy R J Langford - MEng. (Hons)
Senior Software Engineer 
Multicom Products Ltd.

Tel: +44 (0)117 9081250