Hi Guido, I haven't got any idea offhand why this would be happening. I know JiBX is able to correctly handle multiple abstract <mapping>s for the same class, but perhaps having these in different included bindings causes the confusion. I'll try to duplicate the problem and investigate.
- Dennis Dennis M. Sosnoski SOA and Web Services in Java Training and Consulting http://www.sosnoski.com - http://www.sosnoski.co.nz Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117 Guido Wischrop wrote: > Hello, > I'm using JiBX 1.1.5 with axis2 1.2 on a quite complex wsdl. Now I > have several elements which use different namespaces and some of these > elements are recursive, e.g. the Block structure. I created three > binding files each using a different namespace but the same prefix > > File 1: > <namespace uri="http://ns1" prefix="coord" default="all"/> > > <mapping class="Block" abstract="true" type-name="blockNs1" > marshaller="BlockMarshaller" unmarshaller="BlockMarshaller" /> > [...] > > File 2: > <namespace uri="http://ns2" prefix="coord" default="all"/> > > <mapping class="Block" abstract="true" type-name="blockNs2" > marshaller="BlockMarshaller" unmarshaller="BlockMarshaller" /> > [...] > > File 3: > <namespace uri="http://ns3" prefix="coord" default="all"/> > > <mapping class="Block" abstract="true" type-name="blockNs3" > marshaller="BlockMarshaller" unmarshaller="BlockMarshaller" /> > [...] > > Then I created a "super" binding.xml which includes the three above. > The binding compiler runs fine, but when I try to create a Block > instance (e.g. new Block()) then I get > > java.lang.ClassFormatError: Duplicate method name&signature in class file > Block > 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$000(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:276) > at java.lang.ClassLoader.loadClass(ClassLoader.java:251) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) > [...] > > It seems that the binding compiler adds its methods three times. The > eclipse class viewer shows this: > > // Compiled from Block.java (version 1.6 : 50.0, super bit) > public class Block implements org.jibx.runtime.IMarshallable, > org.jibx.runtime.IUnmarshallable { > > [...] > > // Method descriptor #83 (Lorg/jibx/runtime/IMarshallingContext;)V > // Stack: 3, Locals: 2 > public synthetic void marshal(org.jibx.runtime.IMarshallingContext > arg1) throws org.jibx.runtime.JiBXException; > 0 aload_1 [arg1] > 1 bipush 12 > 3 ldc <String "Block"> [70] > 5 invokeinterface > org.jibx.runtime.IMarshallingContext.getMarshaller(int, > java.lang.String) : org.jibx.runtime.IMarshaller [76] [nargs: 3] > 10 aload_0 [this] > 11 aload_1 [arg1] > 12 invokeinterface > org.jibx.runtime.IMarshaller.marshal(java.lang.Object, > org.jibx.runtime.IMarshallingContext) : void [82] [nargs: 3] > 17 return > Local variable table: > [pc: 0, pc: 18] local: this index: 0 type: Block > [pc: 0, pc: 18] local: arg1 index: 1 type: > org.jibx.runtime.IMarshallingContext > > // Method descriptor #90 ()I > // Stack: 1, Locals: 1 > public synthetic int JiBX_getIndex(); > 0 bipush 12 > 2 ireturn > Local variable table: > [pc: 0, pc: 3] local: this index: 0 type: Block > > // Method descriptor #103 (Lorg/jibx/runtime/IUnmarshallingContext;)V > // Stack: 3, Locals: 2 > public synthetic void > unmarshal(org.jibx.runtime.IUnmarshallingContext arg1) throws > org.jibx.runtime.JiBXException; > 0 aload_1 [arg1] > 1 bipush 12 > 3 invokeinterface > org.jibx.runtime.IUnmarshallingContext.getUnmarshaller(int) : > org.jibx.runtime.IUnmarshaller [96] [nargs: 2] > 8 aload_0 [this] > 9 aload_1 [arg1] > 10 invokeinterface > org.jibx.runtime.IUnmarshaller.unmarshal(java.lang.Object, > org.jibx.runtime.IUnmarshallingContext) : java.lang.Object [102] > [nargs: 3] > 15 return > Local variable table: > [pc: 0, pc: 16] local: this index: 0 type: Block > [pc: 0, pc: 16] local: arg1 index: 1 type: > org.jibx.runtime.IUnmarshallingContext > > // Method descriptor #83 (Lorg/jibx/runtime/IMarshallingContext;)V > // Stack: 3, Locals: 2 > public synthetic void marshal(org.jibx.runtime.IMarshallingContext > arg1) throws org.jibx.runtime.JiBXException; > 0 aload_1 [arg1] > 1 bipush 30 > 3 ldc <String "Block"> [70] > 5 invokeinterface > org.jibx.runtime.IMarshallingContext.getMarshaller(int, > java.lang.String) : org.jibx.runtime.IMarshaller [76] [nargs: 3] > 10 aload_0 [this] > 11 aload_1 [arg1] > 12 invokeinterface > org.jibx.runtime.IMarshaller.marshal(java.lang.Object, > org.jibx.runtime.IMarshallingContext) : void [82] [nargs: 3] > 17 return > Local variable table: > [pc: 0, pc: 18] local: this index: 0 type: Block > [pc: 0, pc: 18] local: arg1 index: 1 type: > org.jibx.runtime.IMarshallingContext > > // Method descriptor #90 ()I > // Stack: 1, Locals: 1 > public synthetic int JiBX_getIndex(); > 0 bipush 30 > 2 ireturn > Local variable table: > [pc: 0, pc: 3] local: this index: 0 type: Block > > // Method descriptor #103 (Lorg/jibx/runtime/IUnmarshallingContext;)V > // Stack: 3, Locals: 2 > public synthetic void > unmarshal(org.jibx.runtime.IUnmarshallingContext arg1) throws > org.jibx.runtime.JiBXException; > 0 aload_1 [arg1] > 1 bipush 30 > 3 invokeinterface > org.jibx.runtime.IUnmarshallingContext.getUnmarshaller(int) : > org.jibx.runtime.IUnmarshaller [96] [nargs: 2] > 8 aload_0 [this] > 9 aload_1 [arg1] > 10 invokeinterface > org.jibx.runtime.IUnmarshaller.unmarshal(java.lang.Object, > org.jibx.runtime.IUnmarshallingContext) : java.lang.Object [102] > [nargs: 3] > 15 return > Local variable table: > [pc: 0, pc: 16] local: this index: 0 type: Block > [pc: 0, pc: 16] local: arg1 index: 1 type: > org.jibx.runtime.IUnmarshallingContext > > // Method descriptor #83 (Lorg/jibx/runtime/IMarshallingContext;)V > // Stack: 3, Locals: 2 > public synthetic void marshal(org.jibx.runtime.IMarshallingContext > arg1) throws org.jibx.runtime.JiBXException; > 0 aload_1 [arg1] > 1 bipush 45 > 3 ldc <String "Block"> [70] > 5 invokeinterface > org.jibx.runtime.IMarshallingContext.getMarshaller(int, > java.lang.String) : org.jibx.runtime.IMarshaller [76] [nargs: 3] > 10 aload_0 [this] > 11 aload_1 [arg1] > 12 invokeinterface > org.jibx.runtime.IMarshaller.marshal(java.lang.Object, > org.jibx.runtime.IMarshallingContext) : void [82] [nargs: 3] > 17 return > Local variable table: > [pc: 0, pc: 18] local: this index: 0 type: Block > [pc: 0, pc: 18] local: arg1 index: 1 type: > org.jibx.runtime.IMarshallingContext > > // Method descriptor #90 ()I > // Stack: 1, Locals: 1 > public synthetic int JiBX_getIndex(); > 0 bipush 45 > 2 ireturn > Local variable table: > [pc: 0, pc: 3] local: this index: 0 type: Block > > // Method descriptor #103 (Lorg/jibx/runtime/IUnmarshallingContext;)V > // Stack: 3, Locals: 2 > public synthetic void > unmarshal(org.jibx.runtime.IUnmarshallingContext arg1) throws > org.jibx.runtime.JiBXException; > 0 aload_1 [arg1] > 1 bipush 45 > 3 invokeinterface > org.jibx.runtime.IUnmarshallingContext.getUnmarshaller(int) : > org.jibx.runtime.IUnmarshaller [96] [nargs: 2] > 8 aload_0 [this] > 9 aload_1 [arg1] > 10 invokeinterface > org.jibx.runtime.IUnmarshaller.unmarshal(java.lang.Object, > org.jibx.runtime.IUnmarshallingContext) : java.lang.Object [102] > [nargs: 3] > 15 return > Local variable table: > [pc: 0, pc: 16] local: this index: 0 type: Block > [pc: 0, pc: 16] local: arg1 index: 1 type: > org.jibx.runtime.IUnmarshallingContext > } > > Thanks for any help, > Guido > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > jibx-users mailing list > jibx-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jibx-users > > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ jibx-users mailing list jibx-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jibx-users