如何在定义新代理服务时从注册表引用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使用添加资源,但是我是否需要做其他任何事情来使代理编译?
答案 0 :(得分:4)
我认为你在这里指的是注册表。每个产品中的注册表空间包含三个主要分区。
配置注册表包含可以在同一产品的多个实例(例如,ESB节点集群)之间共享的产品特定配置。因此,您可以在Config注册表中创建WSDL集合,并将其引用为..
"conf:/wsdl/MyServiceSOAP.wsdl"
通过将资源上传到Registry,您也可以在创建代理服务时轻松选择它们。
我认为只有当资源位于本地文件系统中名为“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