-
Notifications
You must be signed in to change notification settings - Fork 44
Description
Hello
I am using Metro 4.0.4 and GlassFish 7.0.15.
I am trying to perform a WS-Atomic transaction between service SAX and service SAY. Both services store an employee on a table. SAX uses MySQL 5.7 and SAY uses MySQL 8.0.
Both services work well independently. SAX can invoke SAY with no problems without @transactional annotation (com.sun.xml.ws.api.tx.at.Transactional class).
But when service SAX tries to send the transactional context to SAY using @transactional, the application crashes. The server goes into a loop, always sending the same message.
Although I have included this property at the server's configuration (and even as Maven jvm.config): wsat.recovery.enabled=false the problem seems to be that WS-AT recovery is still enabled.
I have used Payara 2025.02 and I have the same problem. I asked StackOverflow but there is no solution.
I would appreciate some help.
Thanks in advance.
This is the error reported by SAX (in a loop):
javax.transaction.xa.XAException: WSATGatewayRM recover call failed due to StoreException:java.lang.NullPointerException
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:383)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:357)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:344)
at com.sun.xml.ws.tx.at.tube.WSATClientHelper.processTransactionalRequest(WSATClientHelper.java:146)
at com.sun.xml.ws.tx.at.tube.WSATClientHelper.doHandleRequest(WSATClientHelper.java:60)
at com.sun.xml.ws.tx.at.tube.WSATClientTube.doProcessRequest(WSATClientTube.java:73)
at com.sun.xml.ws.tx.at.tube.WSATClientTube.processRequest(WSATClientTube.java:62)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.client.Stub.process(Stub.java:431)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:160)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:62)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:132)
at jdk.proxy74/jdk.proxy74.$Proxy423.create(Unknown Source)
at negocio.x.SAX.create(SAX.java:84)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.glassfish.exousia.AuthorizationService.lambda$invokeBeanMethod$1(AuthorizationService.java:506)
at org.glassfish.exousia.AuthorizationService.runInScope(AuthorizationService.java:586)
at org.glassfish.exousia.AuthorizationService.invokeBeanMethod(AuthorizationService.java:506)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:297)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4193)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:604)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:706)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:553)
at org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:87)
at org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:766)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:706)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:553)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:122)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:99)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:766)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:706)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:307)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4168)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4158)
at com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:155)
at jdk.proxy72/jdk.proxy72.$Proxy419.create(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.glassfish.webservices.InvokerImpl.invoke(InvokerImpl.java:58)
at org.glassfish.webservices.EjbInvokerImpl.invoke(EjbInvokerImpl.java:58)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:124)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:59)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:107)
at org.glassfish.webservices.MonitoringPipe.process(MonitoringPipe.java:105)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:92)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:107)
at com.sun.enterprise.security.webservices.server.ServerSecurityPipe.processRequest(ServerSecurityPipe.java:178)
at com.sun.enterprise.security.webservices.server.ServerSecurityPipe.process(ServerSecurityPipe.java:118)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:92)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:399)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:832)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:386)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:139)
at org.glassfish.webservices.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:84)
at org.glassfish.webservices.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:59)
at org.glassfish.webservices.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:186)
at org.glassfish.webservices.EjbWebServiceServlet.service(EjbWebServiceServlet.java:134)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
at org.glassfish.grizzly.servlet.ServletHandler.doServletService(ServletHandler.java:198)
at org.glassfish.grizzly.servlet.ServletHandler.service(ServletHandler.java:149)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:425)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException
at java.base/java.io.File.(File.java:278)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.createFile(WSATGatewayRM.java:138)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.initStore(WSATGatewayRM.java:130)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:381)
... 99 more
javax.transaction.xa.XAException: WSATGatewayRM recover call failed due to StoreException:java.lang.NullPointerException
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:383)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:357)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:344)
at com.sun.xml.ws.tx.at.tube.WSATClientHelper.processTransactionalRequest(WSATClientHelper.java:146)
at com.sun.xml.ws.tx.at.tube.WSATClientHelper.doHandleRequest(WSATClientHelper.java:60)
at com.sun.xml.ws.tx.at.tube.WSATClientTube.doProcessRequest(WSATClientTube.java:73)
at com.sun.xml.ws.tx.at.tube.WSATClientTube.processRequest(WSATClientTube.java:62)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.client.Stub.process(Stub.java:431)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:160)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:62)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:132)
at jdk.proxy74/jdk.proxy74.$Proxy423.create(Unknown Source)
at negocio.x.SAX.create(SAX.java:84)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.glassfish.exousia.AuthorizationService.lambda$invokeBeanMethod$1(AuthorizationService.java:506)
at org.glassfish.exousia.AuthorizationService.runInScope(AuthorizationService.java:586)
at org.glassfish.exousia.AuthorizationService.invokeBeanMethod(AuthorizationService.java:506)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:297)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4193)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:604)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:706)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:553)
at org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:87)
at org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:766)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:706)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:553)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:122)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:99)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:766)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:706)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:307)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4168)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4158)
at com.sun.ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:155)
at jdk.proxy72/jdk.proxy72.$Proxy419.create(Unknown Source)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.glassfish.webservices.InvokerImpl.invoke(InvokerImpl.java:58)
at org.glassfish.webservices.EjbInvokerImpl.invoke(EjbInvokerImpl.java:58)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:124)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:59)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:107)
at org.glassfish.webservices.MonitoringPipe.process(MonitoringPipe.java:105)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:92)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:107)
at com.sun.enterprise.security.webservices.server.ServerSecurityPipe.processRequest(ServerSecurityPipe.java:178)
at com.sun.enterprise.security.webservices.server.ServerSecurityPipe.process(ServerSecurityPipe.java:118)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:92)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1106)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1020)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:989)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:847)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:399)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:832)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:386)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:139)
at org.glassfish.webservices.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:84)
at org.glassfish.webservices.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:59)
at org.glassfish.webservices.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:186)
at org.glassfish.webservices.EjbWebServiceServlet.service(EjbWebServiceServlet.java:134)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
at org.glassfish.grizzly.servlet.ServletHandler.doServletService(ServletHandler.java:198)
at org.glassfish.grizzly.servlet.ServletHandler.service(ServletHandler.java:149)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:425)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.NullPointerException
at java.base/java.io.File.(File.java:278)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.createFile(WSATGatewayRM.java:138)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.initStore(WSATGatewayRM.java:130)
at com.sun.xml.ws.tx.at.internal.WSATGatewayRM.recover(WSATGatewayRM.java:381)
This is the error reported by the server (in a loop):
WS-AT recovery is enabled but WS-AT is not ready for runtime. Processing WS-AT recovery log files...|#]
recover() flag=25165824|#]
WSATGatewayRM.initStore path:null|#]