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