You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2009/10/28 18:39:59 UTC

[jira] Resolved: (CXF-1598) Soap message generated via JaxWsProxyFactoryBean created client fails

     [ https://issues.apache.org/jira/browse/CXF-1598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1598.
------------------------------

       Resolution: Cannot Reproduce
    Fix Version/s: Invalid


I'm resolving this as the soap messages that are now being generated are correct as per schema.  If the service is rejecting it, then it's a bug in that service.  You may need to write a custom interceptor/XMLStreamWriter  or something to manipulate the message to workaround the bug in that service.

> Soap message generated via JaxWsProxyFactoryBean created client fails
> ---------------------------------------------------------------------
>
>                 Key: CXF-1598
>                 URL: https://issues.apache.org/jira/browse/CXF-1598
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.1
>         Environment: Windows XP, Ubuntu 7.04, jdk 1.5.0_09, CXF 2.1
>            Reporter: Alton Idowu
>            Assignee: Daniel Kulp
>             Fix For: Invalid
>
>         Attachments: cxf1598.zip
>
>
> The soap messages generated through DynamicClientFactory and JaxWsProxyFactoryBean are different.  The message generated via the DynamicClientFactory created client generates a soap message with qualified parameters that is accepted by web service provider.  However, the message JaxWsProxyFactoryBean created 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 created 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:test.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:test.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.