You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Alton Idowu (JIRA)" <ji...@apache.org> on 2008/05/21 02:10:55 UTC

[jira] Updated: (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 ]

Alton Idowu updated CXF-1598:
-----------------------------

    Description: 
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: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>



  was:
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>



        Summary: Soap message generated via JaxWsProxyFactoryBean created client fails  (was: Soap message generated JaxWsProxyFactoryBean fails)

> 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
>    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 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: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.