You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "Urciolo, Kevin" <Ke...@ngc.com> on 2008/04/30 00:41:31 UTC

SOAP 1.1 VS 1.2

I using CXF 2.1 WSDL->JAVA.  The wsdl references SOAP 1.2.

<definitions name="abc"
 targetNamespace="http://localhost:8080/abc/"
 xmlns:tns="http://localhost:8080/abc/"
 xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
 xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xop="http://www.w3.org/2004/08/xop/include"
 xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
 xmlns:ns="http://localhost:8080/siststm/"
 xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap12/"
 xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
 xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
 xmlns="http://schemas.xmlsoap.org/wsdl/">

Why is the namespace in the XML request referencing SOAP 1.1?
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

I get the client by doing the following:
JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new
JaxWsProxyFactoryBean();
jaxWsProxyFactoryBean.setServiceClass(Class.forName(portClassName));
jaxWsProxyFactoryBean.setAddress(url);
Object object = jaxWsProxyFactoryBean.create();

Re: SOAP 1.1 VS 1.2

Posted by Daniel Kulp <dk...@apache.org>.
On Tuesday 29 April 2008, Urciolo, Kevin wrote:
> I using CXF 2.1 WSDL->JAVA.  The wsdl references SOAP 1.2.
>
> <definitions name="abc"
>  targetNamespace="http://localhost:8080/abc/"
>  xmlns:tns="http://localhost:8080/abc/"
>  xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
>  xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>  xmlns:xop="http://www.w3.org/2004/08/xop/include"
>  xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
>  xmlns:ns="http://localhost:8080/siststm/"
>  xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap12/"
>  xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
>  xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
>  xmlns="http://schemas.xmlsoap.org/wsdl/">
>
> Why is the namespace in the XML request referencing SOAP 1.1?
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>
> I get the client by doing the following:
> JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new
> JaxWsProxyFactoryBean();
> jaxWsProxyFactoryBean.setServiceClass(Class.forName(portClassName));
> jaxWsProxyFactoryBean.setAddress(url);
> Object object = jaxWsProxyFactoryBean.create();

Any chance you can supply a quick testcase? Actually, just the wsdl would 
do.  I'm wonding if the the code generator isn't adding the appropriate 
@SOAPBinding annotation onto the port class so it uses the default of 
Soap 1.1.   

One workaround MIGHT be to add:
jaxWsProxyFactoryBean.setWsdlLocation(wsdl);
to point at the wsdl and see if it picks up the correct stuff from there. 

Alternatively, try:
jaxWsProxyFactoryBean.setBindingId(
   "http://schemas.xmlsoap.org/wsdl/soap12/");
or
jaxWsProxyFactoryBean.setBindingId(
   "http://www.w3.org/2003/05/soap/bindings/HTTP/");


-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog