Oracle WSDL files contain ESB port entry that causes connection failures
------------------------------------------------------------------------

                 Key: CXF-1920
                 URL: https://issues.apache.org/jira/browse/CXF-1920
             Project: CXF
          Issue Type: Bug
          Components: Core, JAX-WS Runtime, Soap Binding
    Affects Versions: 2.1.3
            Reporter: Frank Adcock
            Priority: Critical


A WSDL file generated by Oracle ESB web services creates a port-type entry 
which is not supported by CXF of the form

<port name="__esb_Acknowledge_execute_ppt" 
binding="tns:__esb_Acknowledge_execute_ppt"></port>

CXF attempts to create a binding to the port name which fails with the 
following 

Caused by: org.apache.cxf.wsdl11.WSDLRuntimeException: Cannot find the 
destination factory, check the port //wsdl:[EMAIL PROTECTED]

A correct soap name is available in the WSDL but because there is no defined 
port name or matching transport CXF throws this exception when working with 
Oracle ESB web services.

A quick fix for it may be to check for a null bindingId in the method 
org.apache.cxf.jaxws.ServiceImpl.addPort and not add if null bindingId.  I am 
unable to download the sources here to be able to verify if this will hold up.

    public final void addPort(QName portName, String bindingId, String address) 
{
        PortInfoImpl portInfo = new PortInfoImpl(bindingId, portName, 
serviceName);
        portInfo.setAddress(address);
        portInfos.put(portName, portInfo);
    }

In 2.1.2 the same exception was being thrown when initially creating the 
service which has since been modified as part of the 2.1.3 release.

In my particular case I am not interested in the Oracle ESB port so to ignore 
its existence and continue working with the SOAP port would be advantageous.


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