0

我在端点上创建了一个直通代理服务,并在发布 wsdl 选项中选择了指定源 URL 。端点对 wsdl 定义中的 xsd 的引用。代理 Web 服务生成罚款,但是当尝试从客户端 (SOAP UI) 加载此 Web 服务时,由于在代理服务 wsdl URL 中引用 xsd 的方式,它会引发错误。

具有 xsd 定义的实际 Web 服务示例

<types>
    <xsd:schema>
        <xsd:import namespace="http://service.example.com/" schemaLocation="http://172.16.91.82:7001/DemoService/DemoService?xsd=1"/>
    </xsd:schema>
</types>

引用架构的代理服务示例。

<wsdl:types>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified">
        <xsd:import namespace="http://service.example.com/" schemaLocation="SecuredServiceProxy?xsd=http://172.16.91.82:7001/DemoService/DemoService?xsd=1"/>
    </xsd:schema>
</wsdl:types>

客户端在加载架构位置时遇到问题(这当然看起来无效)

1)我正在寻找一种方法来摆脱这个。

2) 此代理服务旨在对最终用户隐藏实际服务。xsd 模式在代理服务 wsdl 定义中列出的方式是将实际的端点信息泄露给最终用户。有没有办法避免在生成的代理服务的wsdl定义中显示xsd url?

谢谢。

4

2 回答 2

2

所以你的意思是说你的端点是 URL 而你的发布 wsdl 也是 url?您可以尝试将您的发布 wsdl 指定为内联,您可以在 ESB_Home 中创建一个 .xsd 文件,该文件应包含您的 xsd URL 的内容。然后,您可以通过将位置从 url 更改为内联 wsdl 中的 ESB_Home 目录中存在的 xsd 文件的名称来引用您的 .xsd 文件:

<wsdl:types>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified">
        <xsd:import namespace="http://service.example.com/" schemaLocation="DemoService.xsd"/>
    </xsd:schema>
</wsdl:types>

希望这对你有用

于 2013-07-01T13:42:18.947 回答
0

如果您需要对最终用户隐藏实际的服务细节,您可以避免在 WSO2 ESB 中发布 WSDL。

然后您将调用 ESB 中定义的代理服务。

我希望这有帮助。

谢谢!

于 2013-06-28T03:51:37.433 回答