Websphere Message Broker SOAP Request Node calling .NET web service in gateway mode (no WSDL)

2.5k Views Asked by At

I have been struggling with this issue for a while now and all of the search results (and there are many that I have read) do not seem to apply to my situation.

I have a Websphere Message Broker message flow with a subflow that is calling a web service that was written in Visual Studio. I am trying to call this web service in Gateway Mode which means that I do not have the WSDL to plug into in the properties of the SOAP Request Node in the Broker Toolkit I am using to write this flow.

The error message I am getting is a common one:

The message with Action SendEmail cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).

I am unsure how to proceed with this. Because of the Gateway mode, many of the properties are not configurable in the properties of the SOAP Request Node. Can I set these in the ESQL code, perhaps in the message someplace such as the HTTPRequestHeader?

I am using Websphere 8, Broker Toolkit 7.5. Transport for the message is HTTP and SSL is not used. WS-Addressing is also not being used.

Any suggestions would be most welcome.

1

There are 1 best solutions below

0
On

Yes, in gateway mode you do not need a WSDL. Your target web service required additional info like below.

le.getRootElement().evaluateXPath("?Destination/?SOAP/?Request/?WSA/?Action[set-value('"+Action+"')]");

Try setting your local environment destination as above. The action can be set according to the WSDL file you have gotten.

How to search for action: First use the provider url:

http://URL?WSDL

After that search for the action word. you can see request action like below.

<input wsam:Action="http//ActionURL.bla.bla.bla" message="tns:blabla" /> 

So just SET Action = 'http//ActionURL.bla.bla.bla'