在引用XSD的端点上创建wso2 esb代理服务

在引用XSD的端点上创建wso2 esb代理服务,wso2,wso2esb,Wso2,Wso2esb,我在端点上创建了一个直通代理服务,并在发布wsdl选项中选择了指定源URL。端点引用wsdl定义中的xsd。代理web服务生成罚款,但当尝试从客户端(SOAP UI)加载此web服务时,由于代理服务wsdl URL中引用xsd的方式,它会抛出一个错误 具有xsd定义的实际web服务示例 <types> <xsd:schema> <xsd:import namespace="http://service.example.com/" schema

我在端点上创建了一个直通代理服务,并在发布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


谢谢

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

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

我希望这有帮助


谢谢

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

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


希望这对您有用

这是手动操作的结果。通过替换对XSD的引用,我手动复制了wsdl文件,它成功了。这不是我真正想做的,但它满足了我的要求。