Hi Mitch,

My thoughts:

1. There is a way to disable WS-Addressing requirement on WSO2 servers (ESB,
WSAS whatever) I guess. You may try that.
2. Having said "1", I am not convinced with WSO2 ESB stripping off unknown
elements of the SOAP message, basically modifying the SOAP message. The
proxy should just forward the request as long as the WSDL is understood by
the proxy service. Either there should be a way to configure to send the
message "AS IS" to the target service or its a bug!
3. I don't know much about TUSCANY's support for WS-Addressing. Try using
"wsa:EndpointReference" attribute in <binding.ws> as mentioned in
http://tuscany.apache.org/sca-java-bindingws.html.

Thanks & Regards,
Anil

On Tue, Feb 23, 2010 at 8:24 AM, Mitchell Ratisher
<[email protected]>wrote:

>
> Has anyone been able to integrate Tuscany with the WSO2 ESB?  The intent is
> to have the ESB sitting as a proxy between Tuscany instances.  The Tuscany
> Tours sample app has been divided between the instances, so one instance
> calls to the other to do searches, using the default WS binding, e.g.:
>
> <binding.ws uri="
> http://mitch-linux.corp.shutterfly.com:8280/services/HotelSearch"; />
>
>
> Of course, that's the URI for the WSO2 ESB acting as a proxy for the hotel
> search.  I've run into two problems while doing this:
>
> 1.  Tuscany puts information needed to support a callback into the SOAP
> header.  Unfortunately, WSO2 is seeing fit to strip all that out before
> passing the message on.  I've posted to the WSO2 forums for help, see
> http://wso2.org/forum/thread/9337 for all the fun XML.  For anyone who
> hasn't bothered to intercept traffic between instances, its interesting to
> see what goes in the request.
>
> 2.  WSO2 (or rather the Axis engine)  doesn't like the lack of a wsa:Action
> tag in the SOAP header (wsa=http://www.w3.org/2005/08/addressing).
>  Tuscany is including a SOAP Action http header, but not the tag in the SOAP
> header xml.  See the stack trace below.  I went thru the Axis 2 1.5.1 source
> and concluded the missing wsa:Action tag is what triggered the error.
>  Putting the tage in myself and manually posting leads to the problem
> described in item #1.  I'm actually not clear where the fault lies here:
>    a.  Tuscany for failing to include the header
>    b.  WSO2 for insisting on having it when it apparently isn't needed
>    c.  Me for not knowing how to configure Axis
>    d.  Nobody really, its just one of those interop issues that hasn't been
> thought all the way thru.
>
> Anyway, I'd appreciate any guidance I can get here.  I'm kind of a REST
> lover, so this is the biggest dose of SOAP I've gotten in a while.  Still, I
> figured passing Tuscany's SOAP messages thru an ESB was something even a
> beginner could get right.
>
>
>
> [2010-02-22 18:25:31,542] ERROR - AxisEngine A required header representing
> a Message Addressing Property is not present
> org.apache.axis2.AxisFault: A required header representing a Message
> Addressing Property is not present
>        at
> org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:373)
>        at
> org.apache.axis2.addressing.AddressingFaultsHelper.triggerMessageAddressingRequiredFault(AddressingFaultsHelper.java:299)
>        at
> org.apache.axis2.handlers.addressing.AddressingInHandler.checkForMandatoryHeaders(AddressingInHandler.java:289)
>        at
> org.apache.axis2.handlers.addressing.AddressingInHandler.extractAddressingInformation(AddressingInHandler.java:274)
>        at
> org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:153)
>        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:256)
>        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:165)
>        at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
>        at
> org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:349)
>        at
> org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:239)
>        at
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
>
>
> Mitch Ratisher
>

Reply via email to