You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by newmax <go...@gmail.com> on 2009/06/04 17:54:43 UTC
Web service message interception
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!
--
View this message in context: http://www.nabble.com/Web-service-message-interception-tp23872738p23872738.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Web service message interception
Posted by Freeman Fang <fr...@gmail.com>.
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
Re: Web service message interception
Posted by newmax <go...@gmail.com>.
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.
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
>
>
>
--
View this message in context: http://www.nabble.com/Web-service-message-interception-tp23872738p23889994.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Web service message interception
Posted by Freeman Fang <fr...@gmail.com>.
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