You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by chris snow <ch...@googlemail.com> on 2009/12/29 11:11:12 UTC

WSDL question

I'm having a problem with using axis on another apache project (ofbiz).  I
think the problem is with the way the wsdl is built.  SoapUI generates a
soap request as follows:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:findPartiesById xmlns:ns2="http://ofbiz.apache.org/service/">
         <map-Map>
            <ns2:map-Entry>
               <ns2:map-Key>
                  <ns2:std-String value="idToFind"/>
               </ns2:map-Key>
               <ns2:map-Value>
                  <ns2:std-String value="admin"/>
               </ns2:map-Value>
            </ns2:map-Entry>
            <ns2:map-Entry>
               <ns2:map-Key>
                  <ns2:std-String value="login.username"/>
               </ns2:map-Key>
               <ns2:map-Value>
                  <ns2:std-String value="admin"/>
               </ns2:map-Value>
            </ns2:map-Entry>
            <ns2:map-Entry>
               <ns2:map-Key>
                  <ns2:std-String value="login.password"/>
               </ns2:map-Key>
               <ns2:map-Value>
                  <ns2:std-String value="ofbiz"/>
               </ns2:map-Value>
            </ns2:map-Entry>
         </map-Map>
      </ns2:findPartiesById>
   </S:Body>
</S:Envelope>

However, the above request fails unless I remove the namespace prefix from
the elements below map-Map.

Is there a way to change the wsdl so that the ns2 prefix is not generated by
tools such as SoapUI?  The wsdl is below:

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/" xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="
http://ofbiz.apache.org/service/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" targetNamespace="
http://ofbiz.apache.org/service/">
    <wsdl:types>
        <xsd:schema targetNamespace="http://ofbiz.apache.org/service/">
            <xsd:element name="std-String">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:string"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="std-Integer">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:integer"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="std-Long">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:long"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="std-Float">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:float"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="std-Double">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:double"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="std-Boolean">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:boolean"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="std-Locale">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:string"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="sql-Timestamp">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:dateTime"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="sql-Date">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:date"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="sql-Time">
                <xsd:complexType>
                    <xsd:attribute name="value" type="xsd:time"
use="required"/>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="col-ArrayList"/>
            <xsd:element name="col-LinkedList"/>
            <xsd:element name="col-Stack"/>
            <xsd:element name="col-Vector"/>
            <xsd:element name="col-TreeSet"/>
            <xsd:element name="col-HashSet"/>
            <xsd:element name="col-Collection"/>
            <xsd:element name="map-TreeMap" type="tns:map-Map"/>
            <xsd:element name="map-WeakHashMap" type="tns:map-Map"/>
            <xsd:element name="map-Hashtable" type="tns:map-Map"/>
            <xsd:element name="map-Properties" type="tns:map-Map"/>
            <xsd:element name="map-HashMap" type="tns:map-Map"/>
            <xsd:element name="map-Map" type="tns:map-Map"/>
            <xsd:element name="map-Entry" type="tns:map-Entry"/>
            <xsd:element name="map-Key" type="tns:map-Key"/>
            <xsd:element name="map-Value" type="tns:map-Value"/>
            <xsd:element name="eepk-" type="tns:map-Map">
                <xsd:annotation>
                    <xsd:documentation>The name of element need to be
appended with name of entity such as eepk-Product for Product
entity.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="eeval-" type="tns:map-Map">
                <xsd:annotation>
                    <xsd:documentation>The name of element need to be
appended with name of entity such as eeval-Product for Product
entity.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="cus-obj">
                <xsd:annotation>
                    <xsd:documentation>Object content need to be in CDATA
such as
&lt;cus-obj&gt;&lt;![CDATA[--byteHex--]]&gt;&lt;/cus-obj&gt;</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:complexType name="map-Map">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0"
ref="tns:map-Entry"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="map-Entry">
                <xsd:sequence>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-Key"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-Value"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="map-Key">
                <xsd:all>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-String"/>
                </xsd:all>
            </xsd:complexType>
            <xsd:complexType name="map-Value">
                <xsd:choice>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-String"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-Integer"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-Long"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-Float"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-Double"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-Boolean"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:std-Locale"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:sql-Timestamp"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:sql-Date"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:sql-Time"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-ArrayList"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-LinkedList"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-Stack"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-Vector"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-TreeSet"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-HashSet"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:col-Collection"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-HashMap"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-Properties"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-Hashtable"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-WeakHashMap"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-TreeMap"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:map-Map"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:eepk-"/>
                    <xsd:element maxOccurs="1" minOccurs="1"
ref="tns:eeval-"/>
                </xsd:choice>
            </xsd:complexType>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="findPartiesByIdResponse">
        <wsdl:part name="map-Map" type="tns:map-Map">
            <wsdl:documentation>
                <attribute java-class="List" name="partiesFound" namespace="
http://ofbiz.apache.org/service/" optional="true" type="col-LinkedList"/>
                <attribute java-class="org.ofbiz.entity.GenericValue"
name="party" namespace="http://ofbiz.apache.org/service/" optional="true"
type="eeval-"/>
            </wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="findPartiesByIdRequest">
        <wsdl:part name="map-Map" type="tns:map-Map">
            <wsdl:documentation>
                <attribute java-class="String" name="idToFind" namespace="
http://ofbiz.apache.org/service/" optional="false" type="std-String"/>
                <attribute java-class="String"
name="partyIdentificationTypeId" namespace="http://ofbiz.apache.org/service/"
optional="true" type="std-String"/>
                <attribute java-class="String" name="searchAllId"
namespace="http://ofbiz.apache.org/service/" optional="true"
type="std-String"/>
                <attribute java-class="String" name="searchPartyFirst"
namespace="http://ofbiz.apache.org/service/" optional="true"
type="std-String"/>
                <attribute java-class="java.lang.String"
name="login.username" namespace="http://ofbiz.apache.org/service/"
optional="false" type="std-String"/>
                <attribute java-class="java.lang.String"
name="login.password" namespace="http://ofbiz.apache.org/service/"
optional="false" type="std-String"/>
            </wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="findPartiesByIdPortType">
        <wsdl:operation name="findPartiesById">
            <wsdl:input message="tns:findPartiesByIdRequest"/>
            <wsdl:output message="tns:findPartiesByIdResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="findPartiesByIdSoapBinding"
type="tns:findPartiesByIdPortType">
        <soap:binding style="rpc" transport="
http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="findPartiesById">
            <soap:operation soapAction="
http://localhost/webtools/control/SOAPService" style="rpc"/>
            <wsdl:input>
                <soap:body encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/" namespace="
http://ofbiz.apache.org/service/" use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/" namespace="
http://ofbiz.apache.org/service/" use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="findPartiesById">
        <wsdl:port binding="tns:findPartiesByIdSoapBinding"
name="findPartiesByIdPort">
            <soap:address location="
http://localhost/webtools/control/SOAPService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Many thanks in advance,

Chris