2013-03-06 140 views
0

我有一個後端服務,我將其配置爲WSO2 ESB中的代理服務。WSO2 ESB改變wsdl

ESB公開了稍微不同的wsdl,這也是有效的,並按預期工作。

問題是我不能使用我的舊存根與ESB wsdl,因爲結構發生了變化。我想以這樣一種方式創建服務,即ESB中的wsdl與我的端點服務完全相同。

這樣的接近性或是否需要再次生成存根(這將需要在我的情況下很多努力)?

編輯:在端點和ESB WSDL的WSDL的差異 。例如我的終點有以下標籤

<xs:element name=", - Endpoint 
<xsd:element name= - ESB 

2.另一個不同之處是:

<wsdl:service name="CasesServiceService"> - Endpoint 
<wsdl:service name="CasesService"> - ESB 

3.端口名稱:

<wsdl:port name="CasesServiceHttpSoap11Endpoint" binding="tns:CasesServiceSoap11Binding"> 
<wsdl:port binding="tns:CasesServiceServiceSoapBinding" name="CasesServicePort"> 
+1

從客戶端使用存根.. Dint明確您的意思是「我想以ESB的wsdl與我的端點服務完全相同的方式創建服務」。如果您的wsdl已更改,則需要重新生成存根。 – Ratha 2013-03-06 16:33:58

+0

感謝您的回答!我想我沒有解釋清楚,請參閱編輯過的原文。問題是我不想再生成存根(因爲它會非常耗時),我只想在存根中更改端點URL,以使它們繼續運行。 – Ivo 2013-03-07 08:20:37

+0

我不認爲你可以使用相同的存根調用代理..將wsdl添加到代理的目的是什麼? Noramlly,如果我們不想公開後端服務的某些操作,我們將編輯wsdl並將wsdl作爲唯一允許的操作代理進行代理。在你的情況下,我不認爲有一個合理的理由來解決你的代理wsdl而不是一個簡單的名稱cahnge。:)只需刪除它。 – Ratha 2013-03-07 10:02:28

回答

3

爲了使WSO2 ESB保持相同的WSDL合約使用完全相同的服務/端口名稱,您可以直接編輯代理服務的Apache Synapse配置文件。剛剛在WSO2 ESB界面點擊「源視圖」和下列參數添加到<proxy>節點:

<parameter name="useOriginalwsdl">true</parameter> 
<parameter name="modifyUserWSDLPortAddress">true</parameter> 

這將使使用原始的WSDL,因此它指向總線只修改端口地址。

The relevant documentation is here