Hi,I'm having trouble binding a typed array in a client of a web service.Given
the operation "getMyElems", the WSDL (pasted further down in this message)
specifies a return type of "ArrayOfMyElem". I am unable to figure out how to
bind this to an array of MyElem.I am using Axis' WSDL2Java to generate a client
from the WSDL and I would like to be able to have something like:
TestService svc = new TestServiceStub(...); MyElem[] myElems =
svc.getMyElems();However, when I try to generate a client using WSDL2Java, I
get the following exception:Exception in thread "main"
org.apache.axis2.wsdl.codegen.CodeGenerationException:
java.lang.RuntimeException: Cannot unwrap element
{....service}getMyElemsResponse: no abstract mapping definition found for type
{....service}ArrayOfMyElem (used by element {....service}getMyElemsReturn) at
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:256)I
have attached the relevant WSDL, sample SOAP message and binding below.Any
help would be greatly appreciated.-thomBinding:<?xml version="1.0"
encoding="UTF-8"?><binding force-classes="true" xmlns:tns="....service"
value-style="element"> <namespace uri="...service" default="elements"/>
<mapping abstract="true" type-name="tns:MyElem" class="...service.MyElem"
ordered="false"> <value name="id" field="id" usage="optional"/>
</mapping></binding>The SOAP message that is returned on invoking getMyELems
is:<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Body> <ns:getMyElemsResponse xmlns:ns="http://....service">
<ns:getMyElemsReturn> <ns:myElem> <ns:id>1</ns:id>
</ns:myElem> <ns:myElem> <ns:id>2</ns:id>
</ns:myElem> <ns:myElem> <ns:id>3</ns:id>
</ns:myElem> </ns:getMyElemsReturn> </ns:getMyElemsResponse>
</soapenv:Body></soapenv:Envelope>WSDL:<?xml version="1.0"
encoding="UTF-8"?><wsdl:definitions name="TestService"
targetNamespace="http://com.servicetester.service"
xmlns:impl="http://com.servicetester.service"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- WSDL Types -->
<wsdl:types> <xsd:schema> <xsd:element name="getMyElems">
<xsd:complexType/> </xsd:element> <xsd:element
name="getMyElemsResponse"> <xsd:complexType>
<xsd:sequence> <xsd:element name="getMyElemsReturn"
type="impl:ArrayOfMyElem"/> </xsd:sequence>
</xsd:complexType> </xsd:element> <xsd:complexType
name="MyElem"> <xsd:all> <xsd:element
name="id" nillable="false" type="xsd:int"> </xsd:element>
</xsd:all> </xsd:complexType>
<xsd:complexType name="ArrayOfMyElem"> <xsd:sequence>
<xsd:element name="myElem" minOccurs="0" maxOccurs="unbounded"
form="qualified" type="impl:MyElem" /> </xsd:sequence>
</xsd:complexType> </xsd:schema> </wsdl:types> <!-- Messages -->
<wsdl:message name="getMyElems1Request"> <wsdl:part
element="impl:getMyElems" name="parameters"/> </wsdl:message>
<wsdl:message name="getMyElems1Response"> <wsdl:part
element="impl:getMyElemsResponse" name="parameters"/> </wsdl:message>
<!-- Port Type --> <wsdl:portType name="TestServicePortType">
<wsdl:operation name="getMyElems"> <wsdl:input
message="impl:getMyElems1Request"
name="getMyElems1Request"/> <wsdl:output
message="impl:getMyElems1Response"
name="getMyElems1Response"/> </wsdl:operation> </wsdl:portType>
<!-- WSDL Binding --> <wsdl:binding name="TestServiceSoapBinding"
type="impl:TestServicePortType"> <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation
name="getMyElems"> <wsdlsoap:operation soapAction="getMyElems"
style="document"/> <wsdl:input name="getMyElems1Request">
<wsdlsoap:body use="literal"/> </wsdl:input>
<wsdl:output name="getMyElems1Response"> <wsdlsoap:body
use="literal"/> </wsdl:output> </wsdl:operation>
</wsdl:binding> <!-- Service Definition --> <wsdl:service
name="TestService"> <wsdl:port binding="impl:TestServiceSoapBinding"
name="TestService"> <wsdlsoap:address
location="http://localhost:8080/service-ws/services/TestService"/>
</wsdl:port> </wsdl:service></wsdl:definitions>
_________________________________________________________________
Local listings, incredible imagery, and driving directions - all in one place!
Find it!
http://maps.live.com/?wip=69&FORM=MGAC01
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users