我正在尝试在java类中解组SOAP UI值。请找到以下示例:
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "UserList")
@ResponsePayload
public JAXBElement<UserListResponse> UserListRequest(@RequestPayload JAXBElement<UserListRequest> request) throws Exception {
System.out.println("Enters into UserList()");
// create an unmarshaller
JAXBContext context =
JAXBContext.newInstance(UserListRequest.class);//Here i am providing the class name of request parameter
Unmarshaller unmarshaller = context.createUnmarshaller();
JAXBElement<UserListRequest> root = unmarshaller.unmarshal(new StreamSource(
header), UserListRequest.class); //here I am struggling to unmarshal and I am not getting what is value needs to be passed in place "header"
UserListRequest list = root .getValue();
}
}
SOAP 请求 XML 在 SOAP UI 中传递,如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prim="http://COM.SERVICES.WebServices/UserServices">
<soapenv:Header/>
<soapenv:Body>
<prim:UserList>
<!--Optional:-->
<prim:XMLRequest>
<!--Optional:-->
<prim:Header>
<!--Optional:-->
<prim:MessageID>2</prim:MessageID>
<!--Optional:-->
<prim:CorrelationID>2</prim:CorrelationID>
<!--Optional:-->
<prim:SystemID>2</prim:SystemID>
<!--Optional:-->
<prim:RequestorID>2</prim:RequestorID>
</prim:Header>
<prim:Reference>C</prim:Reference>
<!--Optional:-->
<prim:Number>1120521877477751</prim:Number>
<!--Optional:-->
<prim:Usercount>51</prim:Usercount>
</prim:XMLRequest>
</prim:UserList>
</soapenv:Body>
</soapenv:Envelope>
任何人都可以帮助在 Java 类中解组@RequestPayload JAXBElement<UserListRequest>
请求。
引发
错误的行...
JAXBElement<UserListRequest> root =
unmarshaller.unmarshal(new StreamSource(header), UserListRequest.class)
var 标头不会在方法中的任何位置声明。 在尝试查看传入的标头之前,您不应该最初"取消编组"或解析传入的"请求"变量吗?
还值得注意的是,您来自 SoapUI 的请求没有标头。
<soapenv:Header/>
向我指示没有传入标题信息。