我希望您能帮助我将SOAP信封映射到Java类,我的意图是将结果操作到数据库中。
获取SOAP信封或使用数据库没有问题,但是我完全不懂JABX和如何根据我的SOAP信封映射我的类,这是我的SOAP:
这是我的接收主要值(计数、返回值和仪表板DTO列表)的类:
我的应用程序试图将SOAPEnvelope转换为Result,但是出现了错误:
我做错了什么?
谢谢。
获取SOAP信封或使用数据库没有问题,但是我完全不懂JABX和如何根据我的SOAP信封映射我的类,这是我的SOAP:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<KD4SoapHeaderV2 xmlns="http://www.ibm.com/KD4Soap">A03ODA1YzhlZDQ2MWQAAQ==</KD4SoapHeaderV2>
</soap:Header>
<soap:Body>
<Response xmlns="http://tempuri.org/">
<Result xmlns:a="http://schemas.datacontract.org/2004/07/PS.SharedWebServices.Response" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Errors />
<a:Count>329</a:Count>
<a:Return>SUCCESS</a:Return>
<a:DashboardDTOs>
<a:DashboardDTOs>
<a:Value>28.58</a:Value>
<a:Code>O001</a:Code>
<a:Name>Test2</a:Name>
</a:DashboardDTOs>
<a:DashboardDTOs>
<a:Value>40.22</a:Value>
<a:Code>O002</a:Code>
<a:Name>Test2</a:Name>
</a:DashboardDTOs>
<a:DashboardDTOs>
<a:Value>54.11</a:Value>
<a:Code>O003</a:Code>
<a:Name>Test3</a:Name>
</a:DashboardDTOs>
</a:DashboardDTOs>
</Result>
</Response>
</soap:Body>
</soap:Envelope>
这是我的接收主要值(计数、返回值和仪表板DTO列表)的类:
@XmlRootElement(name = "Response")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Response", propOrder = { "Count", "Return", "DashboardDTOs"})
public class Result {
@XmlElement(name="Count", required = true)
private Integer Count;
@XmlElement(name="Return", required = true)
private String Return;
@XmlElement(name = "DashboardDTOs")
private List<DashboardDTOs> DashboardDTOs;
...
这是第二个模型,接收DashboardDTO:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DashboardDTOs", propOrder = {
"Value",
"Code",
"Name"
})
public class DashboardDTOs {
@XmlElement(name = "Value")
private double Value;
@XmlElement(name = "Code")
private String Code;
@XmlElement(name = "Name")
private String Name;
...
我的应用程序试图将SOAPEnvelope转换为Result,但是出现了错误:
Unmarshaller unmarshaller = JAXBContext.newInstance(Result.class).createUnmarshaller();
GetListSummarizedTransactionResultDTO returnValue = (Result)unmarshaller.unmarshal(soapMessagem.getSOAPBody().extractContentAsDocument());
unexpected element (uri:"http://tempuri.org/", local:"Response"). Expected elements are <{}Result>
我做错了什么?
谢谢。