ok thanks !
I tried this which works fine as well :
InOut exchange = getClient().createInOutExchange();
QName service = new QName(m_referencialRouterNamespace,
m_referencialRouterServiceName);
exchange.setService(service);
......
getClient().sendSync(exchange);
....
private ServiceMixClient getClient() throws Exception {
if (m_client == null) {
ClientFactory factory = (ClientFactory) new
InitialContext().lookup(ClientFactory.DEFAULT_JNDI_NAME);
m_client = factory.createClient();
}
return m_client;
}
Jean-Baptiste Onofré wrote:
>
> Hi,
>
> the DefaultServiceMixClient constructor that you use takes two arguments:
> - the first one (jbi) is the JBIContainer itself.
> - the second one is the activation spec.
>
> When you start a ServiceMix 3 in embedded mode, you get it:
> JBIContainer container = new JBIContainer();
> container.setEmbedded(true);
> container:init();
> container.start();
> DefaultServiceMixClient client = new DefaultServiceMixClient(container);
>
> In your case, as you're at the component level, I think that you can't
> get the JBI container in this context.
>
> However, from CXF-SE, you can access to the JBI bus and use the
> ServiceMixClientFacade.
>
> To do it, in your POJO, you can inject the bus:
>
> private javax.jbi.component.ComponentContext context;
>
> public void setContext(javax.jbi.component.ComponentContext context) {
> this.context = context;
> }
>
> after you can use this context in the client:
>
> public void myMethod() {
> ServiceMixClient client = new ServiceMixClientFacade(this.context);
> QName service = new QName("http://servicemix.org/cheese/", "receiver");
> EndpointResolver resolver = client.createResolverForService(service);
> client.send(resolver, null, null, "<hello>world</hello>");
> }
>
> and that's it ;)
>
> Regards
> JB
>
> jcamus wrote:
>> Hi!
>>
>> I'am trying from a given CXF-SE to use a DefaultServiceMixClient to send
>> a
>> sync message into the NMR.
>> I found the following URL : http://servicemix.apache.org/client-api.html
>> http://servicemix.apache.org/client-api.html describing how to use a JBI
>> client into a given component.
>>
>> I tried to inject a given ServiceMix client into my component and I set
>> up
>> my xbean.xml like this (as explained into the documentation) :
>>
>> <bean id="clientWithRouting"
>> class="org.apache.servicemix.client.DefaultServiceMixClient">
>> <constructor-arg ref="jbi" />
>> <constructor-arg>
>> <sm:activationSpec
>> destinationService="parkeon:exportationReferencialRouter"/>
>> </constructor-arg>
>> </bean>
>>
>>
>> but, the ref="jbi" is not explained! And I have the message : No bean
>> named
>> 'jbi' is defined !
>> What is the "jbi" ref?
>> Help please!
>>
>> Regards
>>
>>
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/Documentation-problem-with-DefaultServiceMixClient-tp25781401p25786157.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.