You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by bolek1778 <ya...@yahoo.com> on 2007/07/24 18:25:46 UTC
Unable to use a complex type as an input parameter - member
attributes are always set to NULL
I define a complex type in my wsdl and use it as the input parameter in my
input message (complete wsdl follows below):
<xsd:element name="sendNSRSyncRequestRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="operationCode" type="xsd:string"></xsd:element>
<xsd:element name="sourceOrderID" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<wsdl:message name="sendNSRSyncRequestRequest">
<wsdl:part name="parameters"
element="tns:sendNSRSyncRequestRequest"></wsdl:part>
</wsdl:message>
I generate the code and add a simple implementation class:
import com.testnsr.sync.NSRSyncRequest;
import com.testnsr.sync.SendNSRSyncRequestRequest;
import com.testnsr.sync.SendNSRSyncRequestResponse;
public class MyImplComplex implements NSRSyncRequest {
public SendNSRSyncRequestResponse sendNSRSyncRequest(
SendNSRSyncRequestRequest rq) {
System.out.println(rq.getOperationCode() + rq.getSourceOrderID());
return null;
}
}
The members of the input class, operationCode amd sourceOrderID are always
set to NULL. Try as I might I can't get them to be populated.
Test SOAP envelope:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://testnsr.com/sync">
<env:Body>
<tns:sendNSRSyncRequest>
<tns:sendNSRSyncRequestRequest>
<operationCode>activate</operationCode>
<sourceOrderID>1234</sourceOrderID>
</tns:sendNSRSyncRequestRequest>
</tns:sendNSRSyncRequest>
</env:Body>
</env:Envelope>
Complete WSDL:
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions
name="nsrSyncRequest" targetNamespace="http://testnsr.com/sync"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://testnsr.com/sync"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://testnsr.com/sync">
<xsd:element name="sendNSRSyncRequestResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="errorCode" type="xsd:string"></xsd:element>
<xsd:element name="errorString" type="xsd:string"></xsd:element>
<xsd:element name="responseCode" type="xsd:string"></xsd:element>
<xsd:element name="sourceOrderID" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="sendNSRSyncRequestRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="operationCode" type="xsd:string"></xsd:element>
<xsd:element name="sourceOrderID" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="sendNSRSyncRequestRequest">
<wsdl:part name="parameters"
element="tns:sendNSRSyncRequestRequest"></wsdl:part>
</wsdl:message>
<wsdl:message name="sendNSRSyncRequestResponse">
<wsdl:part name="parameters"
element="tns:sendNSRSyncRequestResponse"></wsdl:part>
</wsdl:message>
<wsdl:portType name="NSRSyncRequest">
<wsdl:operation name="sendNSRSyncRequest">
<wsdl:input message="tns:sendNSRSyncRequestRequest"></wsdl:input>
<wsdl:output message="tns:sendNSRSyncRequestResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NewBinding" type="tns:NSRSyncRequest">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="sendNSRSyncRequest">
<soap:operation
soapAction="http://testnsr.com/sync/sendNSRSyncRequest" />
<wsdl:input>
<soap:body use="encoded" namespace="http://testnsr.com/sync"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="http://testnsr.com/sync"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NSRSyncService">
<wsdl:port name="NewPort" binding="tns:NewBinding">
<soap:address location="http://www.example.org/"></soap:address>
</wsdl:port>
</wsdl:service></wsdl:definitions>
--
View this message in context: http://www.nabble.com/Unable-to-use-a-complex-type-as-an-input-parameter---member-attributes-are-always-set-to-NULL-tf4137115s12049.html#a11766883
Sent from the ServiceMix - User mailing list archive at Nabble.com.