Fault Policy not Handling "javax.xml.ws.soap.SOAPFaultException: EJB Exception" Thrown in Mediator (Doc ID 1487598.1)

Last updated on NOVEMBER 19, 2016

Applies to:

Oracle SOA Platform - Version 11.1.1.5.0 and later
Information in this document applies to any platform.

Symptoms

On : 11.1.1.5.0 version, Mediator Service Engine

ACTUAL BEHAVIOR
---------------
SOA is not handling the following system fault.

Non Recoverable System Fault :
javax.xml.ws.soap.SOAPFaultException: EJB Exception: : java.lang.RuntimeException: **** Test Exception ***** at com.wex.services.EJBServicePortTypeImpl.execute(EJBServicePortTypeImpl.java:18) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37) at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54) at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131) at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119) at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy384.execute(Unknown Source) at com.wex.services.EJBServicePortTypeImpl_ohbvza_WSOImpl.__WL_invoke(Unknown Source) at weblogic.ejb.container.internal.WSOMethodInvoker.invoke(WSOMethodInvoker.java:22) at com.wex.services.EJBServicePortTypeImpl_ohbvza_WSOImpl.__WL_execute_WS(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at weblogic.wsee.server.ejb.WsEjb.invoke(WsEjb.java:54) at weblogic.wsee.jaxws.WLSEjbInstanceResolver$WLSEjbInvoker.invoke(WLSEjbInstanceResolver.java:192) at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:74) at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151) at com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:268) at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:866) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:815) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:778) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:680) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:403) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:532) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:253) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140) at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:171) at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:708) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146) at weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke(ServerSecurityHelper.java:103) at weblogic.wsee.jaxws.HttpServletAdapter$3.run(HttpServletAdapter.java:311) at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:336) at weblogic.wsee.jaxws.JAXWSServlet.doRequest(JAXWSServlet.java:95) at weblogic.servlet.http.AbstractAsyncServlet.service(AbstractAsyncServlet.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178) ; nested exception is: java.lang.RuntimeException: **** Test Exception *****


EXPECTED BEHAVIOR
-----------------------
Given that fault handling has been properly configured, SOA should catch and handle the above fault.

STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1. Deploy EJB that will cause javax.xml.ws.soap.SOAPFaultException to be thrown.
2. Deploy a composite with fault-bindings.xml and fault-policies.xml in the same directory as composite.xml.
3. Test the web service through EM Console.
4. Fault javax.xml.ws.soap.SOAPFaultException occurs but is not handled.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms