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

Reply via email to