I'm trying to understand how the response messages are formatted for a Document Literal service. I have attached the WSDL I'm working with.
The request that gets sent (using the Axis test client) looks good to me. The "Data" gets wrapped into "RequestData" and goes out.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body>
<RequestData xmlns="http://www.your-company.com/Test-PC.xsd1">
<Data/>
</RequestData>
</soapenv:Body></soapenv:Envelope>
<RequestData xmlns="http://www.your-company.com/Test-PC.xsd1">
<Data/>
</RequestData>
</soapenv:Body></soapenv:Envelope>
But the response that Axis sends back is
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<RequestDataResponse xmlns="http://www.your-company.com/Test-PC.xsd1">
<Response>250</Response>
</RequestDataResponse>
</soapenv:Body></soapenv:Envelope>
<soapenv:Body>
<RequestDataResponse xmlns="http://www.your-company.com/Test-PC.xsd1">
<Response>250</Response>
</RequestDataResponse>
</soapenv:Body></soapenv:Envelope>
Basically, the "Response" gets wrapped into an element "RequestDataResponse" and gets
sent out.
sent out.
The Axis client deals with this response fine and I'm able to parse the response. But
I'm trying to make a Document/Literal Wrapped service hosted in Axis 1.2 RC to talk to a
client build using "Systinet" toolkit and the extra response wrapper ("RequestDataResponse") throws the client toolkit off since it doesn't know about it.
I'm trying to make a Document/Literal Wrapped service hosted in Axis 1.2 RC to talk to a
client build using "Systinet" toolkit and the extra response wrapper ("RequestDataResponse") throws the client toolkit off since it doesn't know about it.
The stubs generated in Systinet using the WSDL does not have any classes of type RequestDataResponse and it blows up trying to parse the response.
Is this an issue with Axis or is this how the response is supposed to work ? Does anybody know of work arounds or any switches to turn on/off that would get me past this issue.
Would really appreciate any insights/suggestions on this issue.
Thanks!
Do you Yahoo!?
Yahoo! Mail - Find what you need with new enhanced search. Learn more.
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions name="Test-PC" targetNamespace="http://www.your-company.com/Test-PC.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.your-company.com/Test-PC.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.your-company.com/Test-PC.xsd1"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Created using Cape Clear Studio SOA Editor - http://www.capeclear.com</wsdl:documentation> <wsdl:types> <xsd:schema targetNamespace="http://www.your-company.com/Test-PC.xsd1" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://www.your-company.com/Test-PC.xsd1"> <xsd:element name="Data"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="0" name="DataId" type="xsd:string"/> <xsd:element maxOccurs="1" minOccurs="0" name="DataType" type="xsd:string"/> <xsd:element maxOccurs="1" minOccurs="0" name="DataDate" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="RequestData"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="0" ref="xsd1:Data"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Response" type="xsd:int"/> <xsd:element name="ResponseData"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="0" ref="xsd1:Response"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="ResponseData"> <wsdl:part element="xsd1:ResponseData" name="name"/> </wsdl:message> <wsdl:message name="RequestData"> <wsdl:part element="xsd1:RequestData" name="name"/> </wsdl:message> <wsdl:portType name="TestPCPortType"> <wsdl:operation name="RequestData"> <wsdl:input message="tns:RequestData"/> <wsdl:output message="tns:ResponseData"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="TestPCBinding" type="tns:TestPCPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="RequestData"> <soap:operation soapAction="capeconnect:TestPC:TestPCPortType#RequestData" style="document"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="TestPC"> <wsdl:port binding="tns:TestPCBinding" name="TestPCPort"> <soap:address location="http://localhost:8080/axis/services/TestPCPortType"/> </wsdl:port> </wsdl:service> </wsdl:definitions>