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.

Reply via email to