Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
ALL
Description
When I tried to generate stub's from a servicemix-jsr181 component, the WSDL generated has a bad transport attribut with fails when the ws-import task is called. here is the current binding transport value (generated by the JSR181 component):
transport=http://java.sun.com/xml/ns/jbi/binding/service+engine
This fails when trying to generate the stub source code since this is not a valid transport. Output from the console :
[wsimport] warning: ignoring SOAP port "LogServicePort": unrecognized transport [wsimport] warning: Service "LogService" does not contain any usable ports
The correct tranport value should be :
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
I've attached the new version of HttpEndpoint.
Here is the diff for the source code modification:
----------------
$ diff /cygdrive/d/My\ Received\ Files/HttpEndpoint.java HttpEndpoint.java
20a21
> import javax.wsdl.Binding;
26a28
> import javax.wsdl.extensions.soap.SOAPBinding;
34a37
> import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
39c42
< * @version $Revision$
—
> * @version $Revision: 389216 $
79,84d81
< } else if (targetService != null) {
< svc = def.getService(targetService);
< if (svc != null)
101a99,102
> SOAPBinding binding = getSOAPTransport(port.getBinding());
> if(binding!=null)
113a115,123
>
> protected SOAPBinding getSOAPTransport(Binding binding) {
> ExtensibilityElement extensElm;
> for(Iterator it = binding.getExtensibilityElements().iterator();it.hasNe
xt() {
> extensElm = (ExtensibilityElement) it.next();
> if(extensElm instanceof SOAPBinding)
> }
> return null;
> }