Hi all,

 

I'm new to JBI and ServiceMix, and I seem to be missing a basic point here. I 
can see how JBI can be used to wrap an application in a Service Engine, and can 
therefore be used to flexibly provide multiple means of transport for the same 
service interface. This can even be achieved in a non-intrusive way by writing 
a Service Engine which merely delegates all requests to pure Java methods in 
the application. What escapes me, however, is how that same application can 
initiate JBI-style message exchanges (as a client) when the application itself 
is not service engine component.

 

I see that if your class is a component, the task becomes easy: just call one 
of the create*Exchange() methods. However, most classes are not JBI components. 
They could delegate the action to a JBI component, but how do they get a hold 
of one? They're not on the JNDI context, there's no static/global context (as 
far as I know), and if they try to instantiate their own component, it won't 
have access to the JBIContainer.

 

I have also seen that ServiceMix provides some JBI Client implementations 
(DefaultServiceMixClient, RemoteServiceMixClient). However, the default client 
needs the JBIContainer, and the remote client asks for a URI - this doesn't 
seem very efficient if they are running in the same JVM. I just noticed that 
the remote client uses "peer://org.apache.servicemix?persistent=false" by 
default. Is this what I need?

 

Thanks in advance!

Tim.

----------------------------------------------------------

Timothy High

Software Engineering

[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> 

 

Sakonnet Technology 
Centro Empresarial Mourisco 
Praia de Botafogo 501 1°Andar 
Bloco A - Torre Pão de Açúcar 
22250-040  - Rio de Janeiro, RJ Brazil 
www.sknt.com <http://www.sknt.com/> 

+55 (21) 2586 6102  direct 
+55 (21) 2586 6001  fax 

 

Reply via email to