如何从返回数据集(任意)的 Web 服务创建 POJO<Object>



对不起,如果下面是愚蠢的问题,我尝试了许多网站来获得明确的响应,但由于我是Web服务的新手,我什么都听不懂。

我得到了一个WSDL文件,该文件查找服务器并以以下格式返回响应

<soap:envelop>
    ...
    ..
    <Aresponse>
        <XXXDAtaset>
            <xs:schema>
                <xs:element>
                    <xs:choice>
                        .....
                        .....(Elements are here)
                    </xs:choice>
                </xs:element>
            </xs:schema>
        </XXXDAtaset>
        <diffgr:diffgram>
            <dataset rows>
                -- values are here
            </dataset rows>
        </diffgr:diffgram>
    </Aresponse>
    ..
</soap:envelop>

我没有任何 POJO 来存储这些值(从 WSDL 创建客户端时甚至没有创建 POJO)。初始 WSDL 已<s:any>此响应。

我将如何为此 SOAP 消息创建 POJO?我不知道我是否必须询问 WSDL 提供程序或任何可用的 JAXB 工具来为此生成 POJO。
我试过这个链接 如何使用 JAXB 从服务返回的"anyType"创建 java 对象?但似乎他们已经有一些 POJO 来存储响应。就我而言,我没有。

  • 请向提供商索取示例请求响应 soap xml。
  • 将其从肥皂信封,标题,身体上剥离
  • 您也可以剥离命名空间并将其放置

    <someTag xmlns="">而不是<xs:someTag> 其中 xs="给定命名空间"

  • 使用XSD生成器等工具/API将最低限度的XML转换为POJO

  • 在 SOAP 协议中,标头和信封在生产中很少更改,因为它们主要包含命名空间和凭据。因此,您可以编写一个帮助程序方法来在编组/取消编组期间附加/删除这些"SOAP 组件"

这应该可以帮助您朝着正确的方向开始。

最新更新