如何在定义新的代理服务时从注册表中引用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" 
. 不工作。我按照文档但他们没有显示如何将WSDL上传到注册表中。

q2:如果myservicesoap.wsdl导入myservice.wsdl?我需要使用为myservice.wsdl添加添加资源,但我需要做任何其他事情来制作代理编译?

有帮助吗?

解决方案

我认为您在此引用注册表。每个产品中的注册表空间包含三个主要分区。

  • 本地
  • 配置
  • 治理

配置注册表包含可以在同一产品的多个实例中共享产品特定配置(例如,ESB节点群集)。因此,您可以在Config Registry内创建WSDL集合,并指代..

"conf:/wsdl/MyServiceSOAP.wsdl"
.

通过将资源上载到注册表,您也可以在创建代理服务时轻松选择它们。

我认为只有在本地文件系统中名为“WSDL”的目录中,您只有在“文件:/WSDL/myserviceSoap.wsdl”中,您可以将资源称为“文件:/wsdl/myservicesoap.wsdl”。 btw,关于错误消息..如果查看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
.

其他提示

我从博客找到了一个简单的解决方案: 在我的场景中,我有一个wsdl,导入另一个导入XSD的WSDL。实际结构在第二个WSDL中。

在原始wsdl中导入行:

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

在第二个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"/>
.

在其中我有一个名为包含原始WSDL和XSD文件的本地条目的“file_required_service_1_0.wsdl”等的本地条目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top