1

我想将 ServiceManager WSDL 连接到 WSO2 esb 作为代理服务的目标。我在同一个开发系统上安装了 SM9 和 WSO2esb。SoapSonar 将用于检查我的 esb 配置的结果。

我的服务定义如下所示:

    <proxy name="SM9Lcl1IM" transports="http" startOnLoad="true" trace="enable" statistics="enable">
    <description>Incident Management Local SM9</description>
    <target>
        <endpoint>
            <address uri="http://localhost:19380/sc62server/PWS"/>
        </endpoint>
        <outSequence>
            <send/>
        </outSequence>
    </target>
    <publishWSDL uri="http://localhost:19380/sc62server/PWS/IncidentManagement.wsdl"/>
</proxy>

不幸的是我无法解决问题,xsd 文件必须传输到客户端。SoapSonar 通过一个弹出窗口告诉我,它想知道在哪里可以找到

SM9Lcl1IM?xsd=http://VMDEMOW2K3:19380/sc62server/PWS/Common.xsd

我检查了wsdl,发现如下语句:

<xs:import namespace="http://servicecenter.peregrine.com/PWS/Common" schemaLocation="http://VMDEMOW2K3:19380/sc62server/PWS/Common.xsd"/>'

所以我尝试了几件事:

  • 我复制了 WSDL 内联,定义了一个位置/密钥对并尝试在用户注册表中定义密钥
  • 我检查了突触文档......似乎他们在过去也有这个问题。这两个建议都不能在 WS=2 中配置。我也在 Synapse 中尝试过——同样的问题。我尝试了 synapse 的代理示例(misc/proxy 文件夹中的 synapse.xml) - 这有效!啊......所以它应该以某种方式工作......
  • 我认为 WSO2 的 GUI 以及单独的突触安装的 xml 配置有很多时间。没有任何效果。

是否有解决此问题的提示或设置指南?这些样本很好,但它们太简单了,无法从中得出解决方案。

4

1 回答 1

1

我解决了,但解决方案并不让我满意。我将 xsd 的内容包含在 wsdl 中,因此不需要导入。该解决方案有效,但颠倒了 xsd 的模块化概念。

我认为,这个问题与突触中的一个较旧的错误(wso2 esb 中的基础)有关,而且就它看起来,它根本没有最终解决。

如果您有更好的解决方案,请告诉我,因为我想要一个支持模块化概念的解决方案。

于 2013-01-24T13:39:32.327 回答