Hi,

I'm trying to upgrade our services to use Axis 2 (we're currently using
Axis 1.4).

However, I'm having some trouble with methods which take or return
WS-Addressing EPRs. e.g. on a factory service we have:

        public EndpointReference createResource(String label);

The generated WSDL looks like this:

  <xs:schema xmlns:ax268="http://addressing.axis2.apache.org/xsd"; 
xmlns:ax269="http://util.java/xsd"; attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://addressing.axis2.apache.org/xsd";>
   <xs:import namespace="http://util.java/xsd"/>
   <xs:complexType name="EndpointReference">
    <xs:sequence>
     <xs:element minOccurs="0" name="address" nillable="true" type="xs:string"/>

     <xs:element minOccurs="0" name="addressAttributes" nillable="true" 
type="xs:anyType"/>
     <xs:element minOccurs="0" name="allReferenceParameters" nillable="true" 
type="ns14:Map"/>
     <xs:element minOccurs="0" name="attributes" nillable="true" 
type="xs:anyType"/>
     <xs:element minOccurs="0" name="extensibleElements" nillable="true" 
type="xs:anyType"/>
     <xs:element minOccurs="0" name="logCorrelationIDString" nillable="true" 
type="xs:string"/>
     <xs:element minOccurs="0" name="metaData" nillable="true" 
type="xs:anyType"/>
     <xs:element minOccurs="0" name="metadataAttributes" nillable="true" 
type="xs:anyType"/>
     <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
     <xs:element minOccurs="0" name="referenceParameters" nillable="true" 
type="ns14:Map"/>

    </xs:sequence>
   </xs:complexType>
  </xs:schema>

This doesn't match the schema given in the WS-Addressing spec, which is:

 <xs:complexType name="EndpointReferenceType" mixed="false">
  <xs:sequence>
   <xs:element name="Address" type="tns:AttributedURIType"/>
   <xs:element ref="tns:ReferenceParameters" minOccurs="0"/>

   <xs:element ref="tns:Metadata" minOccurs="0"/>
   <xs:any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:anyAttribute namespace="##other" processContents="lax"/>
 </xs:complexType>

The problem is worse if I use the Axis 1 type EndpointReferenceType; e.g.

   <xs:complexType name="EndpointReferenceType">
    <xs:sequence>
     <xs:element minOccurs="0" name="address" nillable="true" 
type="ns18:AttributedURI"/>
     <xs:element minOccurs="0" name="metadata" nillable="true" 
type="ns18:MetadataType"/>
     <xs:element minOccurs="0" name="parameters" nillable="true" 
type="ns18:ReferenceParametersType"/>
     <xs:element minOccurs="0" name="portType" nillable="true" 
type="ns18:AttributedQName"/>
     <xs:element minOccurs="0" name="serviceName" nillable="true" 
type="ns18:ServiceNameType"/>

     <xs:element minOccurs="0" name="typeDesc" nillable="true" 
type="ns5:TypeDesc"/>
     <xs:element maxOccurs="unbounded" minOccurs="0" name="_any" 
nillable="true" type="ns10:MessageElement"/>
    </xs:sequence>
   </xs:complexType>

(note the "typeDesc" and "MessageElement" parts!)


What's the correct way to handle EndpointReferences in Axis 2?

Thanks,


-- 
Dr Thomas Leonard
IT Innovation Centre
2 Venture Road
Southampton
Hampshire SO16 7NP

Tel: +44 0 23 8076 0834
Fax: +44 0 23 8076 0833
mailto:[EMAIL PROTECTED]
http://www.it-innovation.soton.ac.uk


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to