[英]JAX-WS: com.sun.xml.messaging.saaj.SOAPExceptionImpl: No NamespaceURI, SOAP requires faultcode content to be a QName
I'm performing a SOAP request via SSL.我正在通过 SSL 执行 SOAP 请求。 One request is working, but another request for same SOAP service fails with this exception:
一个请求正在工作,但对同一 SOAP 服务的另一个请求失败并出现以下异常:
java.lang.reflect.UndeclaredThrowableException
com.sun.proxy.$Proxy980.initPayment2(Unknown Source)
com.mobimoney.emulator.rostelecom.utils.LogicImpl.executeInitPayment2(LogicImpl.java:76)
com.mobimoney.emulator.rostelecom.servlets.InitPaymentPageServlet.execInitPayment(InitPaymentPageServlet.java:56)
com.mobimoney.emulator.rostelecom.servlets.InitPaymentPageServlet.service(InitPaymentPageServlet.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
com.sun.xml.messaging.saaj.SOAPExceptionImpl: No NamespaceURI, SOAP requires faultcode content to be a QName
com.sun.xml.messaging.saaj.soap.impl.FaultImpl.setFaultCode(FaultImpl.java:155)
com.sun.xml.messaging.saaj.soap.impl.FaultImpl.setFaultCode(FaultImpl.java:171)
org.apache.cxf.jaxws.JaxWsClientProxy.createSoapFault(JaxWsClientProxy.java:208)
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:142)
com.sun.proxy.$Proxy980.initPayment2(Unknown Source)
com.mobimoney.emulator.rostelecom.utils.LogicImpl.executeInitPayment2(LogicImpl.java:76)
com.mobimoney.emulator.rostelecom.servlets.InitPaymentPageServlet.execInitPayment(InitPaymentPageServlet.java:56)
com.mobimoney.emulator.rostelecom.servlets.InitPaymentPageServlet.service(InitPaymentPageServlet.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
I can't understand what's going wrong.我不明白出了什么问题。 I've Googled this exception and didn't find anything useful.
我在谷歌上搜索了这个异常,但没有找到任何有用的东西。 Maybe this is a problem in WSDL or how I generated classes from WSDL?
也许这是 WSDL 中的问题,或者我如何从 WSDL 生成类?
This is a bug in SAAJ, the Java SOAP library are using.这是 SAAJ 中的一个错误,Java SOAP 库正在使用。
In an error response, the SOAP "faultcode" value is supposed to be formatted in a qname (prefix:localName) format.在错误响应中,SOAP“故障代码”值应该以 qname (prefix:localName) 格式进行格式化。 Older versions of SAAJ enforce this too strictly, giving this error if the prefix is blank.
旧版本的 SAAJ 强制执行此操作过于严格,如果前缀为空,则会出现此错误。 Upgrading to 1.3.16 fixes this issue.
升级到 1.3.16 修复了这个问题。
See https://github.com/javaee/metro-saaj/issues/47见https://github.com/javaee/metro-saaj/issues/47
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.