Hello, I'm trying to coerce a WSE 3.0 client into consuming an Axis2 web
service. The Axis service generates WS-Addressing elements with the 2005
(http://www.w3.org/2005/08/addressing) standard, but WSE3 expects the 2004/08
namespace.
Is there any way to disable addressing in WSE? Communication between the
service and client is always point-to-point, and WS-Addressing doesn't really
seem to be necessary.
Alternately, is it possible to intercept and filter inbound SOAP messages
BEFORE they reach the built-in addressing module? I've tried adding a custom
policy to filter the addressing elements, but the pipeline seems to die
before it reaches my filter -- no matter where it is placed in the policy
list.
Thanks.
- Solomon
Steven L - 31 Jul 2006 14:58 GMT
Hi - I managed to get it working - but not sure whether it is optimized and
been too busy to go any deeper since.
I created a class derived from SoapHttpRouter.
Override ProcessRequestMessage()
- return the endpoint for non-wse clients and the Actor URI for wse 3.0
clients
The non-WSe clients can just call your service, but WSE 3.0 clients need to
specify the Destination property to set the To and Via Uri's.
I don't have time to look into what i did right now, but i am pretty sure
that if you set the SoapActor attribute on the end service it will fail (or
vice versa), so leave it out.
I'd like to hear more about this though - whether you can do it ALL in the
pipeline without your WSE 3.0 client having to set the To and Via properties
AND non-WSE clients can work too (i can get it working without setting the To
and Via, but then nonWSE clients break).
steven
http://stevenR2.com
> Hello, I'm trying to coerce a WSE 3.0 client into consuming an Axis2 web
> service. The Axis service generates WS-Addressing elements with the 2005
[quoted text clipped - 14 lines]
>
> - Solomon