Thanks for comment cxf-nmr is deployed correctly.
How to give endpointname to cxf-nmr and use that to call from nmr/client?
I have given an endpoint name to cxf-nmr as follows
<jaxws:endpoint id="helloWorld"
implementor="org.apache.servicemix.examples.cxf.HelloWorldImpl"
endpointName="MyHelloWorld"
address="nmr:HelloWorld" />
and changed the nmr/client to call the above end point as below
Reference ref =
nmr.getEndpointRegistry().lookup(ServiceHelper.createMap(Endpoint.NAME,
"MyHelloWorld"));
It is giving the error as below.
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.nmr.examples.nmr.client.Client.run(Client.java:88)
at java.lang.Thread.run(Thread.java:619)
I also tried to change the cxf-nmr as follows
<osgi:service ref="helloWorld">
<osgi:interfaces>
<value>org.apache.servicemix.nmr.api.Endpoint</value>
</osgi:interfaces>
<osgi:service-properties>
<entry key="NAME">
<value>h1End</value>
</entry>
</osgi:service-properties>
</osgi:service>
<jaxws:endpoint id="helloWorld"
implementor="org.apache.servicemix.examples.cxf.HelloWorldImpl"
endpointName="MyHelloWorld"
address="nmr:HelloWorld" />
and called from nmr/client as follows
Reference ref =
nmr.getEndpointRegistry().lookup(ServiceHelper.createMap(Endpoint.NAME,
"h1End"));
This also gives the same exception
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.nmr.examples.nmr.client.Client.run(Client.java:88)
at java.lang.Thread.run(Thread.java:619)
How can I give a endpoingname to cxf-nmr and use it to call from nmr/client?
Regards
-Aditya
Freeman Fang wrote:
>
> Hi,
>
> You should follow the README.txt to install that example, which means
> you need use features:install.
> Simply drop the jar to deploy folder isn't enough, as it need some
> dependency features, such as cxf-nmr.
>
> Freeman
> On 2010-5-18, at 下午6:25, Aditya Laddha wrote:
>
>>
>> Thanks for the comments. I was able to initialize the nmr and get
>> channel
>> now.
>>
>> But :
>>
>> I tried running the example cxf-nmr without any change. I copied the
>> compiled .jar file to deploy folder.
>> It gets installed but did not start automatically. so I have given
>> start
>> command. It gives following error
>>
>> [ 510] [Active ] [ ] [Started] [ 60] Apache
>> ServiceMix NMR
>> Example:: NMR Client (1.2.0.fuse-01-00)
>> [ 517] [Installed ] [ ] [ ] [ 60] Apache
>> ServiceMix
>> Example :: CXF NMR (4.2.0.fuse-01-00)
>> ka...@root> start 517
>> The bundle could not be resolved. Reason: Missing Constraint:
>> Import-Package: META-INF.cxf.transport.nmr; version="0.0.0"
>>
>> Please let me know what am I missing? Is there something wrong with
>> cxf-nmr
>> in (4.2.0.fuse-01-00)?
>>
>> Regards,
>> -Aditya
>>
>>
>> Freeman Fang wrote:
>>>
>>> Hi,
>>>
>>> My comment inline
>>> On 2010-5-14, at 下午9:30, Aditya Laddha wrote:
>>>
>>>>
>>>> Hi All,
>>>>
>>>> I am evaluating the service mix 4.2.
>>>>
>>>> So I tried the following example.
>>>> examples\cxf-osgi
>>>>
>>>> To check the performance of calling 2 services I created copy of
>>>> this
>>>> example as
>>>> examples\cxf-osgi1
>>>>
>>>> and want to call "cxf-osgi1" from "cxf-osgi"
>>>>
>>>> I tried
>>>> ComponentContext context;
>>>> DeliveryChannel channel;
>>>> to send the InOut message using "channel.sendSync(inOut);"
>>> cxf-osgi expose jaxws:endpoint through osgi http service, so
>>> basically
>>> it handle incoming request from http transport, so you can't use
>>> something like channel.sendSync(inOut)
>>>>
>>>> But I am getting the channel or context as null.
>>>>
>>>> What is the right way of calling the "cxf-osgi" example service from
>>>> other
>>>> service?
>>>> How we can get the DeliveryChannel or ComponentContext in
>>>> "jaxws:endpoint"
>>>> service to call the other service?
>>> If you expose jaxws:endpoint through NMR transport, then you can use
>>> some NMR client API(I believe it's what you want) to invoke it.
>>> For how to expose jaxws:endpoint through NMR transport, take a look
>>> at
>>> cxf-nmr example we ship with kit.
>>> For how to use NMR client API to invoke a nmr endpoint, take a look
>>> at
>>> nmr/client example we ship with kit.
>>>
>>> Freeman
>>>>
>>>> Thanks & Regards,
>>>> -Aditya
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/How-to-get-the-DeliveryChannel-or-ComponentContext-in-%22jaxws%3Aendpoint%22-service-to-call-the-other-service--tp28559397p28559397.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>> --
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/How-to-get-the-DeliveryChannel-or-ComponentContext-in-%22jaxws%3Aendpoint%22-service-to-call-the-other-service--tp28559397p28594063.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
>
--
View this message in context:
http://old.nabble.com/How-to-get-the-DeliveryChannel-or-ComponentContext-in-%22jaxws%3Aendpoint%22-service-to-call-the-other-service--tp28559397p28595733.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.