newmax wrote:
Thanks for your response. I agree with the first part i.e. intercept message
before it is passed to NMR. But, I am not sure I understand the approach.
The services are implemented as servicemix-http and the consumers of these
services are outside servicemix implemented on .NET and java platform. Did
you mean

a) Rewriting servicemix-http to servicemix-cxf-bc and configuring it to
intercept message. If yes, how can one configure cxf-bc to intercept
messages.
Yes, I suggest you use servicemix-cxf-bc consumer endpoint instead of servicemix-http consumer endpoint here.
You can configure interceptors like
      <cxfbc:inInterceptors>
         <bean class="Interceptor1"/>
         <bean class="Interceptor2"/>
       </cxfbc:inInterceptors>
for cxf bc consumer endpoint, inInterceptors will be invoked when receive message from outside client
Freeman
OR

b) Implementing servicemix-cxf-bc as a proxy to the actual services. If yes,
is there any advantage in using servicemix-cxf-bc over servicemix-http to
implement this role.
Please let me know. Thanks!



Freeman Fang wrote:
Hi,
If you only want the interceptors working between external client and your consumer endpoint in smx container, I don't think you could use MessageListener , since MessageListener is invoked when endpoint get MessageExchange from NMR. But what you want is the consumer endpoint receive request from external client and then before the MessageExchange send to the NMR, you need the interceptors working at this time, IMO, you can use servicemix-cxf-bc and configure cxf style interceptors for cxf bc consumer to archieve this.
Freeman
newmax wrote:
We have a bunch of services implemented using http component deployed on
servicemix. For the sake of simplicity, lets say 5. Currently, we have
identified 3 out of 5 services to be audited/intercepted i.e. intercept
every request and response messages exchanged between client and server
for
these service. I have looked into the option of MessageListener that
intercepts every message in NMR. The problem with this approach is that
all
the messges, including the ones that are sent from one component to
another
within a service, are intercepted and the number of messages intercepted
is
huge. I am looking for a way messages that could intercept message
exchanged
between client and servicemix container only, rather than the messages
exchanged within a container and NMR. Following are the attributes, among
others, I wish to capture:

1) Correlation Id
2) Host Name/address
3) Server Name/Address
4) Service Name

Also, there needs to a mechanism to add and remove service from the list
of
audited services at runtime. The identified component must support JMX.

My questions are:

1) Can this be achieved by using any capabilities available in ServiceMix
2) Am I better off using some other tool. If yes, could suggest some

Truly appreciate your help!
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com






--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com

Reply via email to