我想将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.xml)的代理示例 - 这有效!啊。。。所以它应该以某种方式工作...
- 我想了很多时间使用WSO2的GUi以及单独突触安装的xml配置。什么都没用。
是否有解决此问题的提示或设置指南?这些样本很好,但它们有点太简单了,无法从中得出解决方案。
我解决了它,但解决方案并不让我满意。我将 xsd 的内容包含在 wsdl 中,因此没有必要导入。该解决方案有效,但颠倒了 xsd 的模块化概念。
我认为,这个问题与突触中的一个较旧的错误(在 wso2 esb 中底层)有关,就目前看来,它根本没有最终解决。
如果您有更好的解决方案,请告诉我,因为我希望有一个支持模块化概念的解决方案。