You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Marco Pas <ma...@gmail.com> on 2012/06/14 19:33:34 UTC

How to get incoming & outgoing soap xml in a simple way?

I have been fiddling around with serverside interceptors on cxf, but
is seems that it is not a trivial task to implement a simple incoming
and outgoing interceptors that give me a plain strings containing the
soap xml.

I need to have the plain xml in the interceptor so that i can use them
for specific logging tasks. The standard LogIn & LogOut interceptors
are not up to the task. Anyone willing to share some example on how i
could implement a simple incoming interceptor that is able to get the
incoming soap xml and a outgoing interceptor to again get the soap
xml.

/Marco

Re: How to get incoming & outgoing soap xml in a simple way?

Posted by Marco Pas <ma...@gmail.com>.
Thanks for sharing the code. I am a bit amazed how much code is needed
to execute a simple task like getting the soap xml.
But i guess this it due to the complexity of the CXF framework and SOAP.

Thanks again! I will takes this code further and try to implement my
AMQP logger..


2012/6/14 Jim Talbut <jt...@spudsoft.co.uk>:
>
> You might be better off taking the results of the patch on the jira issue
> and subclassing them.
> However my classes are attached.
>
> There is an EsbMessageService object (not attached) that creates and stores
> the database record.
> The create method on this object also pulls out all the easy stuff from the
> message (the source for the standard ones shows how you can do that).
> The rest of it is getting the data to be passed to setBody.
>
> It works with MTOM, but I have an odd error with FastInfoset that may be a
> bug in FastInfoset (I can't see how it's my fault that all the binary
> elements in the message get replaced with the last binary element!).
>
> Another difference between mine and the trunk ones is that my code for only
> running the inInterceptor once is different (I run once per exchange) - I
> tried using that from the trunk and it didn't work, so I'm not sure why that
> was.
>
> Jim
>
>
>
> On 14/06/2012 19:39, Marco Pas wrote:
>>
>> Could you share the code of these interceptors as an example off how I
>> could implements them myself? It would help me a lot.
>> I have read your suggestion and i also have to log the xml messages to
>> an external system in my case a AMQP provider.
>>
>> /Marco
>>
>>
>> 2012/6/14 Jim Talbut <jt...@spudsoft.co.uk>:
>>>
>>> On 14/06/2012 18:33, Marco Pas wrote:
>>>>
>>>> I need to have the plain xml in the interceptor so that i can use them
>>>> for specific logging tasks. The standard LogIn & LogOut interceptors
>>>> are not up to the task. Anyone willing to share some example on how i
>>>> could implement a simple incoming interceptor that is able to get the
>>>> incoming soap xml and a outgoing interceptor to again get the soap
>>>> xml.
>>>
>>> I wrote my own interceptors based heavily on the standard interceptors.
>>> But it was a lot of work and is fragile in that changes to the standard
>>> interceptors won't get picked up by yours.
>>>
>>> So I proposed a change to the standard interceptors to make them more
>>> extensible: https://issues.apache.org/jira/browse/CXF-4368
>>>
>>> I only did this a couple of days ago, it hasn't been picked up yet.
>>>
>>> Jim
>>>
>
>

Re: How to get incoming & outgoing soap xml in a simple way?

Posted by Jim Talbut <jt...@spudsoft.co.uk>.
You might be better off taking the results of the patch on the jira 
issue and subclassing them.
However my classes are attached.

There is an EsbMessageService object (not attached) that creates and 
stores the database record.
The create method on this object also pulls out all the easy stuff from 
the message (the source for the standard ones shows how you can do that).
The rest of it is getting the data to be passed to setBody.

It works with MTOM, but I have an odd error with FastInfoset that may be 
a bug in FastInfoset (I can't see how it's my fault that all the binary 
elements in the message get replaced with the last binary element!).

Another difference between mine and the trunk ones is that my code for 
only running the inInterceptor once is different (I run once per 
exchange) - I tried using that from the trunk and it didn't work, so I'm 
not sure why that was.

Jim


On 14/06/2012 19:39, Marco Pas wrote:
> Could you share the code of these interceptors as an example off how I
> could implements them myself? It would help me a lot.
> I have read your suggestion and i also have to log the xml messages to
> an external system in my case a AMQP provider.
>
> /Marco
>
>
> 2012/6/14 Jim Talbut <jt...@spudsoft.co.uk>:
>> On 14/06/2012 18:33, Marco Pas wrote:
>>> I need to have the plain xml in the interceptor so that i can use them
>>> for specific logging tasks. The standard LogIn & LogOut interceptors
>>> are not up to the task. Anyone willing to share some example on how i
>>> could implement a simple incoming interceptor that is able to get the
>>> incoming soap xml and a outgoing interceptor to again get the soap
>>> xml.
>> I wrote my own interceptors based heavily on the standard interceptors.
>> But it was a lot of work and is fragile in that changes to the standard
>> interceptors won't get picked up by yours.
>>
>> So I proposed a change to the standard interceptors to make them more
>> extensible: https://issues.apache.org/jira/browse/CXF-4368
>>
>> I only did this a couple of days ago, it hasn't been picked up yet.
>>
>> Jim
>>



Re: How to get incoming & outgoing soap xml in a simple way?

Posted by Marco Pas <ma...@gmail.com>.
Could you share the code of these interceptors as an example off how I
could implements them myself? It would help me a lot.
I have read your suggestion and i also have to log the xml messages to
an external system in my case a AMQP provider.

/Marco


2012/6/14 Jim Talbut <jt...@spudsoft.co.uk>:
> On 14/06/2012 18:33, Marco Pas wrote:
>>
>> I need to have the plain xml in the interceptor so that i can use them
>> for specific logging tasks. The standard LogIn & LogOut interceptors
>> are not up to the task. Anyone willing to share some example on how i
>> could implement a simple incoming interceptor that is able to get the
>> incoming soap xml and a outgoing interceptor to again get the soap
>> xml.
>
> I wrote my own interceptors based heavily on the standard interceptors.
> But it was a lot of work and is fragile in that changes to the standard
> interceptors won't get picked up by yours.
>
> So I proposed a change to the standard interceptors to make them more
> extensible: https://issues.apache.org/jira/browse/CXF-4368
>
> I only did this a couple of days ago, it hasn't been picked up yet.
>
> Jim
>

Re: How to get incoming & outgoing soap xml in a simple way?

Posted by Jim Talbut <jt...@spudsoft.co.uk>.
On 14/06/2012 18:33, Marco Pas wrote:
> I need to have the plain xml in the interceptor so that i can use them
> for specific logging tasks. The standard LogIn & LogOut interceptors
> are not up to the task. Anyone willing to share some example on how i
> could implement a simple incoming interceptor that is able to get the
> incoming soap xml and a outgoing interceptor to again get the soap
> xml.
I wrote my own interceptors based heavily on the standard interceptors.
But it was a lot of work and is fragile in that changes to the standard 
interceptors won't get picked up by yours.

So I proposed a change to the standard interceptors to make them more 
extensible: https://issues.apache.org/jira/browse/CXF-4368

I only did this a couple of days ago, it hasn't been picked up yet.

Jim