2013-06-27 26 views
0

我在端點上創建了通過代理服務的頂層,並選擇了在發佈wsdl選項中指定源URL。端點引用wsdl定義中的xsd's。代理Web服務生成罰款,但在嘗試從客戶端(SOAP UI)加載此Web服務時,由於代理服務wsdl URL中引用了xsd的方式,它會引發錯誤。實際的Web服務的在引用了XSD的端點上創建wso2 esb代理服務

樣品與XSD定義一起架構參考代理服務的

<types> 
    <xsd:schema> 
     <xsd:import namespace="http://service.example.com/" schemaLocation="http://172.16.91.82:7001/DemoService/DemoService?xsd=1"/> 
    </xsd:schema> 
</types> 

樣品。

<wsdl:types> 
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified"> 
     <xsd:import namespace="http://service.example.com/" schemaLocation="SecuredServiceProxy?xsd=http://172.16.91.82:7001/DemoService/DemoService?xsd=1"/> 
    </xsd:schema> 
</wsdl:types> 

客戶端具有加載模式位置(當然這看起來無效)

1)我在尋找一種方式來擺脫這個問題。

2)此代理服務旨在隱藏最終用戶的實際服務。代理服務wsdl定義中列出的xsd模式的方式是將實際的端點信息泄露給最終用戶。有沒有辦法避免生成的代理服務wsdl定義中顯示的xsd url?

謝謝。

回答

0

如果您需要隱藏最終用戶的實際服務詳細信息,則可以避免在WSO2 ESB中發佈WSDL。

然後您將調用ESB中定義的代理服務。

我希望這會有所幫助。

謝謝!

2

所以你的意思是說你的端點是URL,你的發佈wsdl也是url?您可以嘗試將內聯發佈wsdl指定爲內聯,並且您可以在ESB_Home中創建一個包含xsd URL內容的.xsd文件。然後你就可以通過URL變化的位置refrence您.xsd文件只需在您的內聯WSDL出現在你的ESB_Home目錄中的XSD文件的名稱爲:

<wsdl:types> 
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified"> 
     <xsd:import namespace="http://service.example.com/" schemaLocation="DemoService.xsd"/> 
    </xsd:schema> 
</wsdl:types> 

希望這對你的作品

+0

這是人工努力。我手動複製了wsdl文件,將它的引用替換爲XSD,並且它工作正常。這不是我真正想做的事,但它滿足了我的要求。 – Abdul

相關問題