2012-03-15 68 views
1

如何在定義新代理服務時從註冊表中引用WSDL文件?我正在使用WSO2 ESB。如何在WSO2中訪問註冊表ESB

Q1:我可以使用localEntry元素來定義我的代理服務中的WSDL嗎?例如:

localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl" 

前提是我以前使用管理控制檯>添加收藏>創建 「WSDL」,並添加資源> MyServiceSOAP.wsdl。 我有一個「src」值的問題,

"/wsdl/MyServiceSOAP.wsdl"
"wsdl/MyServiceSOAP.wsdl"
不起作用。我遵循 the documentation,但他們沒有說明如何將WSDL上傳到註冊表中。

Q2:如果MyServiceSOAP.wsdl導入MyService.wsdl會怎麼樣?我需要使用爲MyService.wsdl添加資源,但是是否需要執行其他任何操作以使代理編譯?

+0

無法提供任何錯誤消息,因爲任何時候我修改代理服務文件並單擊安全,「localEntry」文件只是消散 - 我想多數民衆贊成如何管理控制檯處理編譯錯誤。 – 2012-03-15 02:09:03

回答

4

我想你是指這裏的註冊表。每個產品中的註冊表空間包含三個主要分區。

  • 本地
  • 配置
  • 治理

Registry Space in the ESB 配置註冊表包含可通過相同的產物(例如ESB節點的集羣)的多個實例共享產品特定的配置。所以,你可以創建配置註冊表內的WSDL收集和參考它像..

"conf:/wsdl/MyServiceSOAP.wsdl" 

在上傳資源的註冊表,您可以創建代理服務時太容易接他們。 enter image description here

我認爲只有當它們位於本地文件系統中名爲'wsdl'的目錄內時,纔可以將資源引用爲「file:/wsdl/MyServiceSOAP.wsdl」。 順便說一下,關於錯誤消息..如果你看看ESB服務器日誌,當你嘗試更新代理引用一個不存在的文件時,你會看到以下錯誤。

Caused by: java.io.FileNotFoundException: ./wsdl/MyServiceSOAP.wsdl (No such file or directory) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:120) 
    at java.io.FileInputStream.<init>(FileInputStream.java:79) 
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70) 
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161) 
    at org.apache.synapse.config.SynapseConfigUtils.getObject(SynapseConfigUtils.java:197) 
    ... 46 more 
+2

謝謝。我不知道「conf:」是「/ _system/config」的快捷方式。我現在可以在我的存儲庫中看到這些文件。 – 2012-03-15 18:21:28

+0

我正在嘗試在我的publishWSDL元素中使用WSDL,但仍然出現「無法定位speficied WSDL」錯誤。正確的語法如下:'publishWSDL key =「standard.wsdl」resource location =「conf:/wsdl/MyServiceSOAP.wsdl」key =「standard.wsdl」publishWSDL' – 2012-03-15 18:40:23

+1

你可以簡單的說對不起,延遲迴復。我錯過了你的評論。 – keheliya 2012-06-14 05:32:31

2

我發現從博客爲它簡單的解決方案: 在我的情況我有一個WSDL,原裝進口另一個WSDL即導入的XSD。實際結構在第二個wsdl中。在原始WSDL

導入線:在第二WSDL

<wsdl:import namespace="http://www.somedomain.com/interface/v1_0" location="service_interface_1_0.wsdl"/> 

導入線:

<xsd:import namespace="http://www.somedomain.com/data/v1_0" schemaLocation="data_types_1_0.xsd"/> 
上的代理

所需的XML:

<publishWSDL key="file_required_service_1_0.wsdl"> 
    <resource location="service_interface_1_0.wsdl" 
      key="file_service_interface_1_0.wsdl"/> 
    <resource location="data_types_1_0.xsd" 
      key="file_data_types_1_0.xsd"/> 

在哪裏我有當地的en嘗試爲「file_required_service_1_0.wsdl」等命名包含原始wsdl和xsd文件的本地條目。