我使用 Apache CXF 编写了一个 WS,在实现类中获取请求数据时,它给出了所有空值。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.sample.project.com.au/registration/services/GetCountry/GetCountryRequest/v1" xmlns:v11="http://www.sample.project.com.au/common/message/Request/v1">
<soapenv:Header/>
<soapenv:Body>
<v1:getCountryRequest>
<v11:header>
<from>?</from>
<to>?</to>
<eventTime>?</eventTime>
<requestId>?</requestId>
<channelCode>?</channelCode>
<enduserCode>?</enduserCode>
<usecaseName>?</usecaseName>
</v11:header>
<v1:message>
<v1:id>123</v1:id>
<v1:name>123</v1:name>
<v1:code>213</v1:code>
</v1:message>
<v1:id>213</v1:id>
</v1:getCountryRequest>
</soapenv:Body>
</soapenv:Envelope>
au.com.project.sample.registration.services.getcountry.GetCountryRequest@219baf0b 无效的 无效的 java.lang.NullPointerException
我尝试打印
的值System.out.println(request);
System.out.println(request.getHeader());
System.out.println(request.getHeader().getFrom());
System.out.println(request.getMessage());
System.out.println(request.getMessage().getId());
System.out.println(request.getMessage().getName());
System.out.println(request.getMessage().getCode());
并得到空指针异常。
这可能是什么原因。
谢谢, 类纳特。
最佳答案
System.out.println(request); // print GetCountryRequest@219baf0b, so it's bot null
System.out.println(request.getHeader()); // is null
System.out.println(request.getHeader().getFrom()); // NPE becouse header is null
所以跳过NPE行,或者添加if语句
System.out.println(request);
System.out.println(request.getHeader());
if (request.getHeader() != null)
{
System.out.println(request.getHeader().getFrom());
}
System.out.println(request.getMessage());
System.out.println(request.getMessage().getId());
System.out.println(request.getMessage().getName());
System.out.println(request.getMessage().getCode());
关于java - Apache CXF WS 中的请求为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372600/