Hi
I have received
a WSDL from a customer; the style is document/literal. The
stubs/skeleton are generated fine when WSDL2Java is run, but the following
error appears when the client code attempts the remote call with the
bean:
Exception in thread
"main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No such operation 'TradePriceRequest'
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No such operation 'TradePriceRequest'
faultActor:
faultNode:
faultDetail:
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No such operation 'TradePriceRequest'
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString: No such operation 'TradePriceRequest'
faultActor:
faultNode:
faultDetail:
No such operation
'TradePriceRequest'
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at com.example.stockquote_wsdl.StockQuoteSoapBindingStub.getLastTradePrice(StockQuoteSoapBindingStub.java:145)
at com.example.stockquote_wsdl.sqMain.main(sqMain.java:63)
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at com.example.stockquote_wsdl.StockQuoteSoapBindingStub.getLastTradePrice(StockQuoteSoapBindingStub.java:145)
at com.example.stockquote_wsdl.sqMain.main(sqMain.java:63)
Is there something
incorrect in the WSDL that has caused the
generated WSDD deployment file to be
incomplete?
The WSDL looks like
this (I suspect it is based on the example found at www.w3.org/TR/wsdl):
<?xml
version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" x
mlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProv
isioning">
<wsdl:types>
<xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS">
<xsd:element name="ProvisioningTaskRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<message name="ProvisioningTaskRequestMessage">
<part name="body" element="tns:ProvisioningTaskRequest"/>
</message>
<message name="ProvisioningTaskAckMessage">
<part name="body" type="xsd:string"/>
</message>
<portType name="ProvisioningTaskRequestPortType">
<operation name="ProvisioningTaskRequestOperation">
<input message="tns:ProvisioningTaskRequestMessage"/>
<output message="tns:ProvisioningTaskAckMessage"/>
</operation>
</portType>
<binding name="ProvisioningTaskRequestSoapBinding" type="tns:ProvisioningTaskRequestPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ProvisioningTaskRequestOperation">
<soap:operation soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ProvisioningService">
<documentation>Provident Provisioning Service</documentation>
<port name="ProvisioningTaskRequestPort" binding="tns:ProvisioningTaskRequestSoapBinding">
<soap:address location="http://localhost:8880/axis/services/ProvidentProvisioning"/>
</port>
</service>
<!-- message declns -->
<!-- port type declns FINISHED -->
<!-- binding declns FINISHED -->
<!-- service decln FINISHED -->
</wsdl:definitions>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" x
mlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/ws
dl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProv
isioning">
<wsdl:types>
<xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS">
<xsd:element name="ProvisioningTaskRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<message name="ProvisioningTaskRequestMessage">
<part name="body" element="tns:ProvisioningTaskRequest"/>
</message>
<message name="ProvisioningTaskAckMessage">
<part name="body" type="xsd:string"/>
</message>
<portType name="ProvisioningTaskRequestPortType">
<operation name="ProvisioningTaskRequestOperation">
<input message="tns:ProvisioningTaskRequestMessage"/>
<output message="tns:ProvisioningTaskAckMessage"/>
</operation>
</portType>
<binding name="ProvisioningTaskRequestSoapBinding" type="tns:ProvisioningTaskRequestPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ProvisioningTaskRequestOperation">
<soap:operation soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ProvisioningService">
<documentation>Provident Provisioning Service</documentation>
<port name="ProvisioningTaskRequestPort" binding="tns:ProvisioningTaskRequestSoapBinding">
<soap:address location="http://localhost:8880/axis/services/ProvidentProvisioning"/>
</port>
</service>
<!-- message declns -->
<!-- port type declns FINISHED -->
<!-- binding declns FINISHED -->
<!-- service decln FINISHED -->
</wsdl:definitions>
Many thanks for any
help that can be provided.
Regards
Patrick
Quinn
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
