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
<cus-obj><![CDATA[--byteHex--]]></cus-obj></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