Soap message generated JaxWsProxyFactoryBean fails
--------------------------------------------------
Key: CXF-1598
URL: https://issues.apache.org/jira/browse/CXF-1598
Project: CXF
Issue Type: Bug
Affects Versions: 2.1
Environment: Windows XP, Ubuntu 7.04, jdk 1.5.0_09, CXF 2.1
Reporter: Alton Idowu
The soap messages generated through DynamicClientFactory and
JaxWsProxyFactoryBean are different. The message generated via the
DynamicClientFactory client generates a soap message with qualified parameters
that is accepted by web service provider. However, the message
JaxWsProxyFactoryBean client generates a soap message with unqualified
parameters that is rejected by the web service provider. Is there a parameter
or custom interceptor code that I can use to force the JaxWsProxyFactoryBean
client to qualify the parameters? Unfortunately, changing the web service
provider is not an option as their change management process is very arduous.
Soap message generated via the DynamicClientFactory client:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:executeQuery xmlns:ns1="urn:test.ilss.sup">
<in0 xmlns="urn:test.ilss.sup">
TEST DATA
</in0>
</ns1:executeQuery>
</soap:Body>
</soap:Envelope>
Soap message generated via the JaxWsProxyFactoryBean client:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:executeQuery xmlns:ns2="urn:test.ilss.sup">
<in0>
TEST DATA
</in0>
</ns2:executeQuery>
</soap:Body>
</soap:Envelope>
The web service provider sends the following message for the
JaxWsProxyFactoryBean client:
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>Server</faultcode>
<faultstring>Parameter in0 does not exist!</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:mil.af.ilss.sup"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:test.ilss.sup">
<wsdl:types>
<xsd:schema targetNamespace="urn:mil.af.ilss.sup"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xsd:element name="executeQuery">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in0" type="xsd:string" minOccurs="1"
maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="executeQueryResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string" minOccurs="1"
maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="executeQueryResponse">
<wsdl:part element="tns:executeQueryResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="executeQueryRequest">
<wsdl:part element="tns:executeQuery" name="parameters" />
</wsdl:message>
<wsdl:portType name="servicePortType">
<wsdl:operation name="executeQuery">
<wsdl:input message="tns:executeQueryRequest" name="executeQueryRequest"
/>
<wsdl:output message="tns:executeQueryResponse"
name="executeQueryResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="serviceHttpBinding" type="tns:servicePortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="executeQuery">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="executeQueryRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="executeQueryResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="service">
<wsdl:port binding="tns:serviceHttpBinding" name="serviceHttpPort">
<wsdlsoap:address location="http://****/vip/queryservice.ws" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.