You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Andrey Poltavtsev <ap...@gmail.com> on 2014/07/29 11:38:44 UTC
Difference between "jms:" and "jms://" definition in JAXWS client
spring configuration
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.