-
Bug
-
Resolution: Done
-
Major
-
jbossws-cxf-5.4.9.Final
-
None
-
None
NullPointerException is thrown when a client sends a request with an unmatched targetNameSpace to a WebService that meets the following conditions:
- marked as Stateless Session Bean
- has a HandlerChain
@Stateless //@WebService(targetNamespace ="http://com.redhat.gss.example.soap/") // correct targetNamespace @WebService(targetNamespace ="http://com.redhat.gss.invalid/") // invalid targetNamespace that is not matched with wsdl distributed to clients @HandlerChain(file = "/META-INF/handlers.xml") public class HelloService {...}
jboss-eap-7.4/standalone/log/server.log
2024-08-19 12:44:25,315 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (default task-1) Interceptor for {http://com.redhat.gss.invalid/}HelloServiceService has thrown exception, unwinding now: java.lang.NullPointerException at org.apache.cxf.service.factory.SimpleMethodDispatcher.getMethod(SimpleMethodDispatcher.java:97) at org.jboss.wsf.stack.cxf.interceptor.HandlerAuthInterceptor$JBossWSHandlerChainInvoker.checkAuthorization(HandlerAuthInterceptor.java:150) at org.jboss.wsf.stack.cxf.interceptor.HandlerAuthInterceptor$JBossWSHandlerChainInvoker.invokeProtocolHandlers(HandlerAuthInterceptor.java:112) at ...
It is more appropriate to throw an exception indicating the cause exception instead of NPE.
If the Web Service is not stateless sesssion bean or no HandlerChain, the following exception will be thrown instead of NPE:
13:46:47,453 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (default task-1) Interceptor for {http://com.redhat.gss.invalid/}HelloServiceService#{http://com.redhat.gss.invalid/}sayHello has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://com.redhat.gss.example.soap/}sayHello found. Expected {http://com.redhat.gss.invalid/}sayHello. at org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:107) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:110) at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:134) at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:88)
- is incorporated by
-
JBEAP-27722 [GSS](7.4.z) JBWS-4429 - NPE when SOAP request with mismatched targetNameSpace is received
- Verified
-
JBEAP-28212 [GSS](8.0.z) JBWS-4429 - NPE when SOAP request with mismatched targetNameSpace is received
- Ready for QA