我有我需要从 WSO2 ESB 中的代理服务调用的远程 Web 服务的 WSDL 文件,我想知道我是否需要通过 XSLT/Enrich 手动构造soap:Body 的元素,或者有一种方法可以生成soapenv:Body 包含来自 WSDL 并且可能替换 '?' 为价值观。
例如,如果您在知道将 WSDL 文件导入项目时使用soapUI 之前会自动生成soapenv:Envelope,其中包含所有XML 元素及其值的问号。WSO2 ESB 中的 TryIt 工具也是如此。
以下是导入 WSDL 后在 soapUI 中自动生成的 soapenv:Envelope 示例:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:abc="http://abc.com/">
<soapenv:Header/>
<soapenv:Body>
<abc:RegisterCandidate>
<abc:NameFirst>?</abc:NameFirst>
<abc:NameMiddle>?</abc:NameMiddle>
<abc:NameLast>?</abc:NameLast>
<abc:PhoneHome>?</abc:PhoneHome>
<abc:EmailAddress>?</abc:EmailAddress>
<abc:Address1>?</abc:Address1>
<abc:Address2>?</abc:Address2>
<abc:City>?</abc:City>
<abc:State>?</abc:State>
<abc:ZipCode>?</abc:ZipCode>
<abc:Country>?</abc:Country>
</abc:RegisterCandidate>
</soapenv:Body>
</soapenv:Envelope>
这在代理服务中是否可能通过任何可用于读取 WSDL 并生成带有 XML 标记的 soapenv:Body 的中介(在上面的代码中它是 abc:RegisterCandidate 及其子级)?我已经使用 XSL 模板完成了它,但它是手动的并且不是很优雅。
我在网上找到了几篇关于在 WSO2 ESB 中编写调用远程 Web 服务的代理服务的文章/博客,以及开发人员在其中所做的工作是使用 XSL 模板在 soapenv:Body 中插入所需的 XML 元素拥有正确/完整的 SOAP 消息,然后将其发送(发送中介)到远程 Web 服务服务器。
谢谢你。