Hello ALL,

I have JAXWS client definition:

<jaxws:client xmlns:library="http://services.talend.org/demos/Library/1.0";
        id="callbackResponseClient" serviceName="library:LibraryConsumer"
        endpointName="library:LibraryConsumerPort" address="jms://"
serviceClass="org.talend.services.demos.library._1_0.LibraryConsumer">
    </jaxws:client>

The problem is - client selects HTTP transport ID during runtime.

I had look to: org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory:

protected EndpointInfo createEndpointInfo(BindingInfo bindingInfo) throws BusException { // setup the transport ID for the soap over jms if there is only address information
        if (transportId == null && getAddress() != null
&& getAddress().startsWith("jms:") && !"jms://".equals(getAddress())) {
            // Set the transportId to be soap over jms transport
transportId = SoapJMSConstants.SOAP_JMS_SPECIFICIATION_TRANSPORTID;
        }
       .....

We can see that it checks for "jms://" value of address and does NOT assign correct transport ID.

This issue can be fixed by adding of "wsdlLocation" property (with PATH to wsdl) to JAXWS client definition or replace "jms://" by "jms:"inside address url.

The question is - what is the rule of using "jms:" and "jms://" inside address property? (where can I find info about it)

Best regards, Andrey.

Reply via email to