对不起,如果下面是愚蠢的问题,我尝试了许多网站来获得明确的响应,但由于我是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 组件"
这应该可以帮助您朝着正确的方向开始。