【发布时间】:2018-04-16 09:37:56
【问题描述】:
我正在尝试使用 SOAP UI 测试 SOAP Web 服务。但是在将端点映射到操作的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()");
try {
UserListRequest userListRequest = request.getValue();
System.out.println("Number:"+userListRequest.getNumber());//Getting Number is null even passing passing in SOAP UI
System.out.println("ID:"+userListRequest.getHeader().getCorrelationID()); //Here also getting java.lang.NullPointerException
//As i am not getting why soap Ui values are not binding and object reference is coming to userListRequest.
if(userListRequest.getReference().equals("C")) {
userListRequest.setNumber(userListRequest.getNumber());
}
}
catch(Exception e) {
e.printStackTrace();
}
return null;
}
请求 XML:
<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>
我无法理解它为什么给出 null 。谁能帮我解决这个问题。
【问题讨论】:
-
单元测试中出现NPE的原因与正常运行代码中出现NPE的原因完全相同。您正在尝试访问尚未实例化的类实例的成员
-
如果您的异常发生在哪一行?
标签: java web-services spring-boot soap soapui