You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "Warren, Jared S" <js...@jcp.com> on 2014/10/30 16:45:25 UTC

Calling interceptor chain in-JVM with a SOAP request

First off, I admit this is an odd request, and will come off as quite hackish (because it is)...but I'm going to ask anyway.

In a JVM where I am running CXF 2.7.8 as a SOAP webservices server (using both http and jms jaxws endpoints), I have a String that happens to be a fully formed SOAP request.

I would like to call the CXF stack within the JVM, passing that String, for it to handle the request.  Ideally, I'd like to do that without going back out to the network (via an HTTP client) and without relying on additional threading.

I've discovered that I can do something like this (where mySOAPRequestDOM is a DOM created from the SOAP request String):

Dispatch<DOMSource> httpDispatcher = myService.createDispatch(myServiceWsdlHttpPort,
                                                                DOMSource.class, Mode.MESSAGE);

....

httpDispatcher.invoke(mySOAPRequestDOM);

But this is REALLY heavyweight - it results in a network call, a thread pool and all kinds of nasty.

What I'd really like to do is call something like the existing HTTP (or JMS) interceptor chain - but without the HTTPConduit - so that the request is handled in the current thread without a trip through the socket libraries.

Any great ideas?

Thanks!
jared
The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If the reader of this message is not the intended recipient, you are hereby notified that your access is unauthorized, and any review, dissemination, distribution or copying of this message including any attachments is strictly prohibited. If you are not the intended recipient, please contact the sender and delete the material from any computer.

Re: Calling interceptor chain in-JVM with a SOAP request

Posted by Jason Pell <ja...@pellcorp.com>.
Try deploying your service on local transport

http://cxf.apache.org/docs/local-transport.html
 On 31/10/2014 2:46 AM, "Warren, Jared S" <js...@jcp.com> wrote:

> First off, I admit this is an odd request, and will come off as quite
> hackish (because it is)...but I'm going to ask anyway.
>
> In a JVM where I am running CXF 2.7.8 as a SOAP webservices server (using
> both http and jms jaxws endpoints), I have a String that happens to be a
> fully formed SOAP request.
>
> I would like to call the CXF stack within the JVM, passing that String,
> for it to handle the request.  Ideally, I'd like to do that without going
> back out to the network (via an HTTP client) and without relying on
> additional threading.
>
> I've discovered that I can do something like this (where mySOAPRequestDOM
> is a DOM created from the SOAP request String):
>
> Dispatch<DOMSource> httpDispatcher =
> myService.createDispatch(myServiceWsdlHttpPort,
>
> DOMSource.class, Mode.MESSAGE);
>
> ....
>
> httpDispatcher.invoke(mySOAPRequestDOM);
>
> But this is REALLY heavyweight - it results in a network call, a thread
> pool and all kinds of nasty.
>
> What I'd really like to do is call something like the existing HTTP (or
> JMS) interceptor chain - but without the HTTPConduit - so that the request
> is handled in the current thread without a trip through the socket
> libraries.
>
> Any great ideas?
>
> Thanks!
> jared
> The information transmitted is intended only for the person or entity to
> which it is addressed and may contain confidential and/or privileged
> material. If the reader of this message is not the intended recipient, you
> are hereby notified that your access is unauthorized, and any review,
> dissemination, distribution or copying of this message including any
> attachments is strictly prohibited. If you are not the intended recipient,
> please contact the sender and delete the material from any computer.
>