Axis Notes

  1. With mixed content type, the simple types are serialized as plain text and the type information is lost. The org.apache.axis.message.Text nodes are used to store or keep the text value.
  2. If you see elements on the wire with empty namespaces (xmlns=""), check the TypeDesc of the generated bean. This is probably because you are missing 'elementFormDefault="qualified"' attribute in your wsdl <type><schema> section or in your xsd file.
  3. If you see a "incompatible types" error while compiling generated stubs and type classes, for example:
    found   : com.ibm.wsrf.notification.ResumeFailedFaultType
    required: java.lang.Throwable
    
    This usually might happen for types defined for faults. Sometimes WSDL2Java will generate for a wsdl fault a proper class that extends AxisFault and sometimes it will generate a plain type bean. In the latter case this will result in the above error. One solution to this problem is to move the stub generation for your service to the top of the list. Another solution is delete (before compile step) the stubs generated for all WSRF namespaces. Yet another solution is to tell WSDL2Java program not to generate classes for all WSRF namespaces (using -x option).
  4. Axis doesn't currently support <xsd:choice maxOccurs="unbounded"> correctly. Also, Axis will incorrectly serialize the qname for beans that were generated from:
     <xs:extension base="xs:QName">
       ...
     </xs:extension>