JAX-WS consumer can not access the JAX-WS service deployed into the nmr
-----------------------------------------------------------------------
Key: SMX4-310
URL: https://issues.apache.org/activemq/browse/SMX4-310
Project: ServiceMix 4
Issue Type: Bug
Reporter: Volodymyr Zhabiuk
Please examine the attached project. There is a JAX-WS HelloWorld service,
deployed into the nmr
{code}
<jaxws:endpoint id="helloWorld"
implementor="org.apache.servicemix.examples.cxf.HelloWorldImpl"
address="nmr:HelloWorld" />
{code}
I want to access it via the jax-ws client:
{code}
<jaxws:client id="helloWorldClient"
serviceClass="org.apache.servicemix.examples.cxf.HelloWorld"
<!--serviceName="helloWorldNS:HelloWorldImplService"-->
address="nmr:bookingService" />
{code}
The exception is thrown
{code}
WARNING: Error processing exchange [
id: 0df3b012-6e4c-44d0-907e-807bc5923e7f
mep: InOut
status: Active
role: Consumer
target: PropertyMatchingReference[{INTERFACE_NAME=,
SERVICE_NAME={http://cxf.examples.servicemix.apache.org/}HelloWorldService}]
operation: {http://cxf.examples.servicemix.apache.org/}sayHi
In: [
content: javax.xml.transform.stream.streamsou...@1a6ac39
]
]
org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange.
No matching endpoints.
at
org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
at
org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
at
org.apache.servicemix.nmr.core.ChannelImpl.sendSync(ChannelImpl.java:141)
at
org.apache.servicemix.nmr.core.ChannelImpl.sendSync(ChannelImpl.java:127)
at
org.apache.servicemix.cxf.transport.nmr.NMRConduitOutputStream.commitOutputMessage(NMRConduitOutputStream.java:127)
at
org.apache.servicemix.cxf.transport.nmr.NMRConduitOutputStream.doClose(NMRConduitOutputStream.java:77)
at
org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:167)
{code}
NmrDestination is registered in the EndpointRegistry with the String properties:
{code}
this.properties.put(Endpoint.SERVICE_NAME,
info.getService().getName().toString());
this.properties.put(Endpoint.INTERFACE_NAME,
info.getInterface().getName().toString());
{code}
And NMRConduitOutputStream creates the exchange's target with QName properties.
Moreover they are completely different from those in NmrDestination.
Exchange's target contains empty QName NTERFACE_NAME property.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.