0

我一直在努力解決這個問題一段時間,所有的搜索結果(並且有許多我已閱讀)不似乎適用於我的情況。Websphere Message Broker SOAP請求節點調用網關模式下的.NET Web服務(無WSDL)

我有一個調用在Visual Studio中編寫的Web服務的子流的Websphere Message Broker消息流。我正嘗試在網關模式下調用此Web服務,這意味着我沒有將WSDL插入到用於編寫此流的Broker Toolkit中的SOAP請求節點的屬性中。

我正的錯誤消息是一個常見的一種:

與行動SendEmail該消息不能在接收器進行處理,由於在一個EndpointDispatcher ContractFilter失配。這可能是因爲合同不匹配(發件人和收件人之間的操作不匹配)或發件人和收件人之間的綁定/安全性不匹配。檢查發送方和接收方是否有相同的合同和相同的綁定(包括安全要求,例如消息,傳輸,無)。

我不確定如何繼續此操作。由於網關模式,許多屬性不能在SOAP請求節點的屬性中配置。我可以在ESQL代碼中設置這些參數,也許可以在諸如HTTPRequestHeader之類的消息中設置這些參數嗎?

我正在使用Websphere 8,Broker Toolkit 7.5。消息的傳輸是HTTP,並且不使用SSL。 WS-Addressing也未被使用。

任何建議將是最受歡迎的。

回答

0

是的,在網關模式下,您不需要WSDL。您的目標網絡服務需要下面的其他信息。

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

嘗試設置您的本地環境目的地,如上所述。該操作可以根據您獲得的WSDL文件進行設置。

如何搜索行動:一是使用提供網址:

http://URL?WSDL 

是搜索行動字後。你可以看到下面的請求動作。

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

所以才SET Action = 'http//ActionURL.bla.bla.bla'