首页 文章

如何访问WSO2 ESB中的注册表

提问于
浏览
1

如何在定义新的代理服务时从注册表引用WSDL文件?我正在使用WSO2 ESB .

Q1: 我可以使用 localEntry 元素在我的代理服务中定义WSDL吗?例如:

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

前提是我之前使用过 Management Console > Add Collection >创建"wsdl"和 Add Resource > MyServiceSOAP.wsdl . 我的"src"值都有问题

"/wsdl/MyServiceSOAP.wsdl"

"wsdl/MyServiceSOAP.wsdl"

不起作用 . 我按照the documentation但他们没有展示如何将WSDL上传到注册表中 .

Q2: 如果MyServiceSOAP.wsdl导入MyService.wsdl怎么办?我也需要为MyService.wsdl使用 Add Resource 但我是否需要做其他任何事情来使代理编译?

2 回答

  • 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
    
  • 2

    我从博客中找到了一个简单的解决方案:在我的场景中,我有一个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"/>
    

    我有“file_required_service_1_0.wsdl”等本地条目,其中包含原始wsdl和xsd文件的本地条目 .

相关问题