如何访问WSO2 ESB中的注册表

时间:2012-03-15 01:56:09

标签: wsdl wso2 wso2esb esb

如何在定义新代理服务时从注册表引用WSDL文件?我正在使用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使用添加资源,但是我是否需要做其他任何事情来使代理编译?

1 个答案:

答案 0 :(得分:4)

我认为你在这里指的是注册表。每个产品中的注册表空间包含三个主要分区。

  • 本地
  • 配置

Registry Space in the ESB 配置注册表包含可以在同一产品的多个实例(例如,ESB节点集群)之间共享的产品特定配置。因此,您可以在Config注册表中创建WSDL集合,并将其引用为..

"conf:/wsdl/MyServiceSOAP.wsdl"

通过将资源上传到Registry,您也可以在创建代理服务时轻松选择它们。 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