[ 
https://issues.apache.org/jira/browse/CXF-628?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12497686
 ] 

Steven E. Harris commented on CXF-628:
--------------------------------------

Here's one function, with the application-specific names changed to protect the 
innocent:

   private static MyInterface_Service makeConfiguredService() {
      final MyInterface_Service service =
            new MyInterface_Service( null,
                                             new javax.xml.namespace.QName( 
nsMyInterface,
                                                                            
"my-interface" ) );
      service.addPort( new javax.xml.namespace.QName( nsMyInterface, 
"my-interface-soap-endpoint" ),
                       javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING,
                       
"http://localhost:8888/some/context/path/ws/my-interface"; );
      return service;
   }


Given some WSDL with a service named "my-interface" with a port named 
"my-interface-soap-endpoint", we want to indicate that this port is bound to 
SOAP 1.2 over HTTP, equivalent to WSDL elements like the following:

  <binding name="my-interface-soap" type="tns:my-interface">
    <wsoap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>

  or

  <binding name="my-interface-soap" type="tns:my-interface">
    <wsoap12:binding transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>

I could also show the similar WSDL 2.0 if that would be helpful.

> Service.addPort(QName, String, String) does not accept binding ID 
> javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-628
>                 URL: https://issues.apache.org/jira/browse/CXF-628
>             Project: CXF
>          Issue Type: Bug
>          Components: Soap Binding
>    Affects Versions: 2.0-RC
>         Environment: NA
>            Reporter: Steven E. Harris
>         Assigned To: Freeman Fang
>            Priority: Minor
>             Fix For: 2.0
>
>
> I'm trying to using the javax.xml.ws.Service.addPort() method, as described 
> here:
> http://java.sun.com/javase/6/docs/api/javax/xml/ws/Service.html#addPort(javax.xml.namespace.QName,%20java.lang.String,%20java.lang.String)
>  
> Per the documentation, one should specify the constant 
>   javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING
> for the bindingId parameter to request a SOAP1.2-over-HTTP binding. When I 
> try to use this constant in CXF, I see the following exception:
> [...]
> Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Could 
> not resolve a binding for http://www.w3.org/2003/05/soap/bindings/HTTP/
>       at 
> org.apache.cxf.frontend.AbstractEndpointFactory.createBindingInfo(AbstractEndpointFactory.java:255)
>       at 
> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpointInfo(AbstractEndpointFactory.java:182)
>       at 
> org.apache.cxf.frontend.AbstractEndpointFactory.createEndpoint(AbstractEndpointFactory.java:104)
>       at 
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:44)
>       at 
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:82)
>       at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:314)
>       at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:237)
>       ... 9 more
> Caused by: org.apache.cxf.BusException: No binding factory for namespace 
> http://www.w3.org/2003/05/soap/bindings/HTTP/ registered.
>       at 
> org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(BindingFactoryManagerImpl.java:78)
>       at 
> org.apache.cxf.frontend.AbstractEndpointFactory.createBindingInfo(AbstractEndpointFactory.java:250)
>       ... 15 more
> I can see that the file "META-INF/cxf/cxf-extension-soap.xml" is getting 
> loaded by the Bus, which I thought would enable SOAP 1.2 for use.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to