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

Reply via email to