我正在开发一个项目,该项目使用从a生成的CXF SoapMessage 串。我尝试使用用户名令牌验证,但它会抛出 的的NullPointerException
这是我使用的源代码[1]。我传递一个SOAP消息[2]作为 将字符串转换为 initiateComplianceCheck 方法,然后将其转换为CXF SoapMessage对象,并将其用于用户名令牌身份验证。
[1] https://gist.github.com/anonymous/bfb6f65194a030a50681af175a9937f5
[2] https://gist.github.com/anonymous/f704db6147e02acdff323dc67ccff6d6
但是CXF handleMessage给出了NullPointerException
这是抛出的错误消息的一部分
java.lang.NullPointerException at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterc
eptor.java:165)
感谢您是否可以帮助我解决此问题
答案 0 :(得分:0)
NPE是因为SoapMessage上没有设置Message Exchange。您可以在代码中添加以下内容:
Exchange ex = new ExchangeImpl();
ex.setInMessage(message);
示例:
顺便说一句,我在样本中使用的wsse命名空间来自于 旧标准,不会奏效。它应该是xmlns:wsse =“ http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd” 代替。