4 Replies Latest reply on Jul 24, 2013 5:16 AM by milhouse

    EJBClient.getUserTransaction() does not work from standalone EJB client

    milhouse

      Hello,

       

      I have the exact same problem like Oscar sc posted here: https://community.jboss.org/message/784560#784560

      I took the liberty to create a new question since the advice given in his case (wrong ejb client config) doesn't seem to apply in my case.

       

      I'm trying to retrieve a UserTransaction in a test client from a standalone JBoss AS 7.1.3.Final. Like Oscar cs I start the UserTransaction and try to call then a bean method with TransactionAttributeType.MANDATORY.

      I'm quite sure that the config of the ejb client is in order, yet I get the JBAS014162: Transaction is required Exception.

       

      I'm using property files for JNDI and ejb client congfiguration as shown in https://docs.jboss.org/author/display/AS71/Developer+Guide#DeveloperGuide-SettingupEJBclientcontextproperties.

       

      My testclient code is almost an exact copy of the test case mentioned eralier by jaikiran pai:

      https://github.com/wildfly/wildfly/blob/7.1.3.Final/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/ejb/remote/client/api/tx/EJBClientUserTransactionTestCase.java#L135

      (providing the link again, since repository seems to have moved)

       

      This is my (JUnit) test client code:

       

       

      {code}

      import javax.transaction.UserTransaction;

       

      import org.jboss.ejb.client.EJBClient;

      import org.jboss.ejb.client.EJBClientTransactionContext;

      import org.jboss.ejb.client.StatelessEJBLocator;

      import org.junit.Before;

      import org.junit.Test;

       

      public class RemoteUserTransactionIT

      {

      private static final String VERSION = "-0.0.1-SNAPSHOT";

      private static final String APP_NAME = "test-utx-integrationtest" + VERSION;

      private static final String MODULE_NAME = "test-utx-ejb" + VERSION;

       

      @Before

      public void setup() throws Exception

      {

          final EJBClientTransactionContext localUserTxContext = EJBClientTransactionContext.createLocal();

          EJBClientTransactionContext.setGlobalContext(localUserTxContext);

      }

       

      @Test

      public void testRemoteUserTransaction() throws Exception

      {

          final StatelessEJBLocator<NeedTxRemote> cmtRemoteBeanLocator =

              new StatelessEJBLocator<>(NeedTxRemote.class, APP_NAME, MODULE_NAME,

                  NeedTxBean.class.getSimpleName(), "");

          final NeedTxRemote cmtRemoteBean = EJBClient.createProxy(cmtRemoteBeanLocator);

       

          final UserTransaction userTransaction = EJBClient.getUserTransaction("itest");

          userTransaction.begin();

          cmtRemoteBean.mandatoryTxOp();

          userTransaction.commit();

       

      }

       

      {code}

       

      This is the client side log (with TRACE on org.jboss.ejb.client package level):

       

      16:14:35,989 INFO  [ejb.client] JBoss EJB Client version 1.0.10.Final

      16:14:35,999 DEBUG [client.EJBClientPropertiesLoader] Looking for jboss-ejb-client.properties using classloader sun.misc.Launcher$AppClassLoader@1f1fba0

      16:14:35,999 DEBUG [client.EJBClientPropertiesLoader] Found jboss-ejb-client.properties using classloader sun.misc.Launcher$AppClassLoader@1f1fba0

      16:14:36,010 DEBUG [client.PropertiesBasedEJBClientConfiguration] endpoint.create.options. has the following options {}

      16:14:36,011 TRACE [client.PropertiesBasedEJBClientConfiguration] Options {} have been merged with defaults {org.xnio.Options.THREAD_DAEMON=>true} to form {org.xnio.Options.THREAD_DAEMON=>true}

      16:14:36,011 DEBUG [client.PropertiesBasedEJBClientConfiguration] remote.connectionprovider.create.options. has the following options {org.xnio.Options.SSL_ENABLED=>false}

      16:14:36,011 TRACE [client.PropertiesBasedEJBClientConfiguration] Options {org.xnio.Options.SSL_ENABLED=>false} have been merged with defaults {} to form {org.xnio.Options.SSL_ENABLED=>false}

      16:14:36,011 DEBUG [client.PropertiesBasedEJBClientConfiguration] remote.connection.default.connect.options. has the following options {org.xnio.Options.SASL_POLICY_NOANONYMOUS=>false}

      16:14:36,011 TRACE [client.PropertiesBasedEJBClientConfiguration] Options {org.xnio.Options.SASL_POLICY_NOANONYMOUS=>false} have been merged with defaults {} to form {org.xnio.Options.SASL_POLICY_NOANONYMOUS=>false}

      16:14:36,012 DEBUG [client.PropertiesBasedEJBClientConfiguration] remote.connection.default.channel.options. has the following options {}

      16:14:36,012 DEBUG [client.PropertiesBasedEJBClientConfiguration] Connection org.jboss.ejb.client.PropertiesBasedEJBClientConfiguration$RemotingConnectionConfigurationImpl@196076f successfully created for connection named default

      16:14:36,012 DEBUG [client.PropertiesBasedEJBClientConfiguration] No clusters configured in properties

      16:14:36,020 INFO  [org.xnio] XNIO Version 3.0.3.GA

      16:14:36,027 INFO  [xnio.nio] XNIO NIO Implementation Version 3.0.3.GA

      16:14:36,035 INFO  [jboss.remoting] JBoss Remoting version 3.2.7.GA

      16:14:36,227 DEBUG [remoting.RemotingConnectionEJBReceiver] Channel Channel ID f4df40d4 (outbound) of Remoting connection 0113affb to localhost/127.0.0.1:4447 opened for context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@1f5ad2b, receiver=Remoting connection EJB receiver [connection=Remoting connection <9238ca>,channel=jboss.ejb,nodename=itest]} Waiting for version handshake message from server

      16:14:36,230 INFO  [client.remoting] EJBCLIENT000017: Received server version 1 and marshalling strategies [river]

      16:14:36,236 TRACE [remoting.ChannelAssociation] Received message with header 0x8

      16:14:36,236 INFO  [client.remoting] EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@1f5ad2b, receiver=Remoting connection EJB receiver [connection=Remoting connection <9238ca>,channel=jboss.ejb,nodename=itest]} on channel Channel ID f4df40d4 (outbound) of Remoting connection 0113affb to localhost/127.0.0.1:4447

      16:14:36,237 DEBUG [remoting.RemotingConnectionEJBReceiver] Received module availability report for 3 modules

      16:14:36,237 DEBUG [remoting.RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='test-utx-integrationtest-0.0.1-SNAPSHOT', moduleName='test-utx-integrationtest-0.0.1-SNAPSHOT', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@1f5ad2b, receiver=Remoting connection EJB receiver [connection=Remoting connection <9238ca>,channel=jboss.ejb,nodename=itest]}

      16:14:36,237 DEBUG [remoting.RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='cargocpc', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@1f5ad2b, receiver=Remoting connection EJB receiver [connection=Remoting connection <9238ca>,channel=jboss.ejb,nodename=itest]}

      16:14:36,237 DEBUG [remoting.RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='test-utx-integrationtest-0.0.1-SNAPSHOT', moduleName='test-utx-ejb-0.0.1-SNAPSHOT', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@1f5ad2b, receiver=Remoting connection EJB receiver [connection=Remoting connection <9238ca>,channel=jboss.ejb,nodename=itest]}

      16:14:36,237 TRACE [remoting.ChannelAssociation] Received message with header 0xffffffff

      16:14:36,237 DEBUG [remoting.ConfigBasedEJBClientContextSelector] Registered 1 remoting EJB receivers for EJB client context org.jboss.ejb.client.EJBClientContext@1f5ad2b

      16:14:36,237 WARN  [remoting.ChannelAssociation] Unsupported message received with header 0xffffffff

      16:14:36,324 TRACE [remoting.ChannelAssociation] Received message with header 0x6

      16:14:36,325 TRACE [remoting.ChannelAssociation] Received message with header 0x5

      16:14:36,326 INFO  [client.remoting] EJBCLIENT000011: Discarding result for invocation id 0 since no waiting context found

      16:14:36,363 DEBUG [remoting.AutoConnectionCloser] Closing Remoting connection <9238ca>

      16:14:36,365 INFO  [client.remoting] EJBCLIENT000016: Channel Channel ID f4df40d4 (outbound) of Remoting connection 0113affb to localhost/127.0.0.1:4447 can no longer process messages

      16:14:36,366 DEBUG [remoting.ChannelAssociation] Closing channel Channel ID f4df40d4 (outbound) of Remoting connection 0113affb to localhost/127.0.0.1:4447

      16:14:36,367 DEBUG [remoting.ChannelAssociation] Registering a re-connect handler org.jboss.ejb.client.remoting.EJBClientContextConnectionReconnectHandler@1853069 for broken channel Channel ID f4df40d4 (outbound) of Remoting connection 0113affb to localhost/127.0.0.1:4447 in EJB client context org.jboss.ejb.client.EJBClientContext@1f5ad2b

      16:14:36,367 DEBUG [remoting.RemotingConnectionEJBReceiver] Closing channelChannel ID f4df40d4 (outbound) of Remoting connection 0113affb to localhost/127.0.0.1:4447

      16:14:36,368 DEBUG [remoting.AutoConnectionCloser] Closing endpoint "config-based-ejb-client-endpoint" <1ce4a29>

       

       

      This is the server side log (with TRACE on org.jboss.as.ejb3 package level) - sorry for the log messages in german...:

       

      16:14:35,131 INFO  [org.jboss.as.configadmin] (ServerService Thread Pool -- 26) JBAS016200: Aktivierung des ConfigAdmin-Untersystems

      16:14:35,137 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 31) JBAS010280: Aktivierung des Infinispan-Untersystems.

      16:14:35,147 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-5) JBAS010408: Starten von JCA Untersystem (JBoss IronJacamar 1.0.12.Final)

      16:14:35,151 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 44) JBAS013171: Aktivierung des Sicherheits-Untersystems

      16:14:35,159 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 38) JBAS011800: Aktivierung des Naming-Untersystems

      16:14:35,162 INFO  [org.jboss.as.security] (MSC service thread 1-8) JBAS013170: Aktuelle PicketBox Version=4.0.13.Final

      16:14:35,168 INFO  [org.jboss.as.osgi] (ServerService Thread Pool -- 39) JBAS011906: Aktivierung des OSGi-Untersystems

      16:14:35,177 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deployment von JDBC-konformem Treiber class org.h2.Driver (Version 1.3)

      16:14:35,182 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Aktivierung der WebServices-Erweiterung

      16:14:35,184 INFO  [org.jboss.as.naming] (MSC service thread 1-12) JBAS011802: Starte Naming-Dienst

      16:14:35,185 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-12) JBAS015400: Gebundene Mail-Session [java:jboss/mail/Default]

      16:14:35,259 INFO  [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-12) JBoss Web Services - Stack CXF Server 4.0.5.GA

      16:14:35,279 INFO  [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-12) Starting Coyote HTTP/1.1 on http-/0.0.0.0:8080

      16:14:35,291 DEBUG [org.jboss.as.ejb3] (ServerService Thread Pool -- 30) Adding EJB @Asynchronous support

      16:14:35,292 DEBUG [org.jboss.as.ejb3] (ServerService Thread Pool -- 30) Configuring timers

      16:14:35,364 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-8) JBAS015012: Start von FileSystemDeploymentService für Verzeichnis E:\Projekte\P37350-Janet\branches\dev-jboss7\6-Software\61-01-src\modules\test-utx-integrationtest\target\cargo\configurations\jboss71x\deployments

      16:14:35,366 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-11) JBAS015876: Starte Deployment von "cargocpc.war"

      16:14:35,366 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-15) JBAS015876: Starte Deployment von "test-utx-integrationtest-0.0.1-SNAPSHOT.ear"

      16:14:35,368 INFO  [org.jboss.as.remoting] (MSC service thread 1-5) JBAS017100: Horche auf 127.0.0.1:9999

      16:14:35,368 INFO  [org.jboss.as.remoting] (MSC service thread 1-13) JBAS017100: Horche auf 0.0.0.0:4447

      16:14:35,385 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-6) JBAS010400: Gebundene Datenquelle [java:jboss/datasources/ExampleDS]

      16:14:35,430 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-10) JBAS015876: Starte Deployment von "test-utx-ejb-0.0.1-SNAPSHOT.jar"

      16:14:35,451 DEBUG [org.jboss.as.ejb3.deployment.processors.EjbClientContextSetupProcessor] (MSC service thread 1-11) Deployment unit deployment "cargocpc.war" doesn't have any explicit EJB client context configured. Falling back on the default service jboss.ejb3.ejbClientContext.default EJB client context service

      16:14:35,451 DEBUG [org.jboss.as.ejb3.deployment.processors.EjbClientContextSetupProcessor] (MSC service thread 1-11) Registering EJB client context org.jboss.ejb.client.EJBClientContext@c51b7a for classloader ModuleClassLoader for Module "deployment.cargocpc.war:main" from Service Module Loader

      16:14:35,457 DEBUG [org.jboss.as.ejb3] (MSC service thread 1-15) Installing timer service for component NeedTxBean

      16:14:35,459 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-15) JNDI bindings for session bean named NeedTxBean in deployment unit subdeployment "test-utx-ejb-0.0.1-SNAPSHOT.jar" of deployment "test-utx-integrationtest-0.0.1-SNAPSHOT.ear" are as follows:

       

          java:global/test-utx-integrationtest-0.0.1-SNAPSHOT/test-utx-ejb-0.0.1-SNAPSHOT/NeedTxBean!com.kam.test.wildfly8x.utx.NeedTxRemote

          java:app/test-utx-ejb-0.0.1-SNAPSHOT/NeedTxBean!com.kam.test.wildfly8x.utx.NeedTxRemote

          java:module/NeedTxBean!com.kam.test.wildfly8x.utx.NeedTxRemote

          java:jboss/exported/test-utx-integrationtest-0.0.1-SNAPSHOT/test-utx-ejb-0.0.1-SNAPSHOT/NeedTxBean!com.kam.test.wildfly8x.utx.NeedTxRemote

          java:global/test-utx-integrationtest-0.0.1-SNAPSHOT/test-utx-ejb-0.0.1-SNAPSHOT/NeedTxBean

          java:app/test-utx-ejb-0.0.1-SNAPSHOT/NeedTxBean

          java:module/NeedTxBean

       

      16:14:35,461 DEBUG [org.jboss.as.ejb3.deployment.processors.EjbClientContextSetupProcessor] (MSC service thread 1-3) Deployment unit deployment "test-utx-integrationtest-0.0.1-SNAPSHOT.ear" doesn't have any explicit EJB client context configured. Falling back on the default service jboss.ejb3.ejbClientContext.default EJB client context service

      16:14:35,461 DEBUG [org.jboss.as.ejb3.deployment.processors.EjbClientContextSetupProcessor] (MSC service thread 1-3) Registering EJB client context org.jboss.ejb.client.EJBClientContext@c51b7a for classloader ModuleClassLoader for Module "deployment.test-utx-integrationtest-0.0.1-SNAPSHOT.ear:main" from Service Module Loader

      16:14:35,468 INFO  [org.jboss.as.osgi] (MSC service thread 1-15) JBAS011907: Registrierung von Modul: Module "deployment.test-utx-integrationtest-0.0.1-SNAPSHOT.ear:main" from Service Module Loader

      16:14:35,468 DEBUG [org.jboss.as.ejb3.deployment.processors.EjbClientContextSetupProcessor] (MSC service thread 1-6) Deployment unit subdeployment "test-utx-ejb-0.0.1-SNAPSHOT.jar" of deployment "test-utx-integrationtest-0.0.1-SNAPSHOT.ear" doesn't have any explicit EJB client context configured. Falling back on the default service jboss.ejb3.ejbClientContext.default EJB client context service

      16:14:35,468 DEBUG [org.jboss.as.ejb3.deployment.processors.EjbClientContextSetupProcessor] (MSC service thread 1-6) Registering EJB client context org.jboss.ejb.client.EJBClientContext@c51b7a for classloader ModuleClassLoader for Module "deployment.test-utx-integrationtest-0.0.1-SNAPSHOT.ear.test-utx-ejb-0.0.1-SNAPSHOT.jar:main" from Service Module Loader

      16:14:35,476 INFO  [org.jboss.as.osgi] (MSC service thread 1-12) JBAS011907: Registrierung von Modul: Module "deployment.cargocpc.war:main" from Service Module Loader

      16:14:35,517 DEBUG [org.jboss.as.ejb3] (MSC service thread 1-6) Security is *not* enabled on EJB: NeedTxBean, no security interceptors will apply

      16:14:35,529 INFO  [org.jboss.as.osgi] (MSC service thread 1-6) JBAS011907: Registrierung von Modul: Module "deployment.test-utx-integrationtest-0.0.1-SNAPSHOT.ear.test-utx-ejb-0.0.1-SNAPSHOT.jar:main" from Service Module Loader

      16:14:35,532 DEBUG [org.jboss.as.ejb3] (MSC service thread 1-4) Using pool config StrictMaxPoolConfig{name=slsb-strict-max-pool, maxPoolSize=20, timeoutUnit=MINUTES, timeout=5} to create pool for Stateless EJB NeedTxBean

      16:14:35,533 DEBUG [org.jboss.as.ejb3.timerservice.TimerServiceImpl] (MSC service thread 1-14) Starting timerservice for timedObjectId: test-utx-integrationtest-0.0.1-SNAPSHOT.test-utx-ejb-0.0.1-SNAPSHOT.NeedTxBean

      16:14:35,540 DEBUG [org.jboss.as.ejb3] (MSC service thread 1-14) Found 0 active timers for timedObjectId: test-utx-integrationtest-0.0.1-SNAPSHOT.test-utx-ejb-0.0.1-SNAPSHOT.NeedTxBean

      16:14:35,556 INFO  [org.jboss.web] (MSC service thread 1-9) JBAS018210: Registrierung von Webkontext: /cargocpc

      16:14:35,561 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: "test-utx-integrationtest-0.0.1-SNAPSHOT.ear" deployed

      16:14:35,562 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: "cargocpc.war" deployed

      16:14:35,571 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management

      16:14:35,571 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin-Konsole horcht an http://127.0.0.1:9990

      16:14:35,571 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.3.Final "Arges" wurde gestartet in 1201ms - 232 von 319 Diensten gestartet (86 Services sind Passiv oder werden bei Bedarf geladen)

      16:14:36,225 TRACE [org.jboss.as.ejb3] (Remoting "itest" task-3) Welcome Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972 to the jboss.ejb channel

      16:14:36,232 DEBUG [org.jboss.as.ejb3] (Remoting "itest" task-4) Client with protocol version 1 and marshalling strategy river trying to communicate on Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972

      16:14:36,234 DEBUG [org.jboss.as.ejb3] (Remoting "itest" task-4) Sending initial module availability message, containing 3 module(s) to channel Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972

      16:14:36,235 DEBUG [org.jboss.as.ejb3] (Remoting "itest" task-4) Writing out cluster formation message for 0 clusters, to channel Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972

      16:14:36,271 TRACE [org.jboss.as.ejb3] (Remoting "itest" task-1) Got message with header 0x3 on channel Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972

      16:14:36,307 ERROR [org.jboss.as.ejb3.invocation] (EJB default - 1) JBAS014134: EJB Invocation failed on component NeedTxBean for method public abstract void com.kam.test.wildfly8x.utx.NeedTxRemote.mandatoryTxOp(): javax.ejb.EJBTransactionRequiredException: JBAS014162: Transaction is required for invocation org.jboss.invocation.InterceptorContext@c2a1a2

          at org.jboss.as.ejb3.tx.CMTTxInterceptor.mandatory(CMTTxInterceptor.java:253) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:182) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:79) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:42) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]

          at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:321) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$100(MethodInvocationMessageHandler.java:69) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:202) [jboss-as-ejb3-7.1.3.Final.jar:7.1.3.Final]

          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_07]

          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_07]

          at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_07]

          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_07]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_07]

          at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_07]

          at org.jboss.threads.JBossThread.run(JBossThread.java:122)

       

      16:14:36,366 TRACE [org.jboss.as.ejb3] (Remoting "itest" read-1) channel Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972 closed

      16:14:36,366 DEBUG [org.jboss.as.ejb3] (Remoting "itest" read-1) Channel Channel ID 74df40d4 (inbound) of Remoting connection 01a671b1 to /127.0.0.1:56972 closed

      16:14:37,196 INFO  [org.jboss.as.osgi] (MSC service thread 1-4) JBAS011908: Deregistrierung von Modul: Module "deployment.test-utx-integrationtest-0.0.1-SNAPSHOT.ear:main" from Service Module Loader

      16:14:37,197 INFO  [org.jboss.as.osgi] (MSC service thread 1-1) JBAS011908: Deregistrierung von Modul: Module "deployment.cargocpc.war:main" from Service Module Loader

       

      I fail to see what's wrong with my setup and would appreciate any help!

      I'm happy to provide any further information and/or my Maven project that can reproduce the issue.

       

      Thanks a lot,

      Gregor

        • 1. Re: EJBClient.getUserTransaction() does not work from standalone EJB client
          jaikiran

          16:14:35,989 INFO  [ejb.client] JBoss EJB Client version 1.0.10.Final

          Please use 1.0.11.Final version of EJB client library which comes with the AS version you are using. I believe that should fix it. Typically, an older client version should work but there was a bug which requires that you use 1.0.11.Final in this specific case. Let us know how it goes.

          • 2. Re: EJBClient.getUserTransaction() does not work from standalone EJB client
            milhouse

            Geez, sometimes the most obvious things are hardest to find...

            That's it, thank you jaikiran pai!!

             

            Just one more question:

            The passage where the client context is set globally doesn't seem to be necessary. In my case it's even working without

             

             

            {code:java}

            final EJBClientTransactionContext localUserTxContext = EJBClientTransactionContext.createLocal();

            EJBClientTransactionContext.setGlobalContext(localUserTxContext);

            {code:java}

             

            In what case do I need this?

             

            Thank you!

            Gregor

            • 3. Re: EJBClient.getUserTransaction() does not work from standalone EJB client
              jaikiran

              Gregor Jakob wrote:

               

              Just one more question:

              The passage where the client context is set globally doesn't seem to be necessary. In my case it's even working without

               

               

              final EJBClientTransactionContext localUserTxContext = EJBClientTransactionContext.createLocal();
              EJBClientTransactionContext.setGlobalContext(localUserTxContext);
              

               

               

              That's because by default, in a standalone client environment, the transaction context is set to UserTransaction context. If you are sure that no other part of the code changes the default, then you can rely on the default. Else explicitly setting it up yourself is the right way to do it.

              1 of 1 people found this helpful
              • 4. Re: EJBClient.getUserTransaction() does not work from standalone EJB client
                milhouse

                I see, thank you. Since in my case I have unrelated test cases in separated modules that all start up their own appserver instance I shouln't need to worry about that, but it is good to know!

                 

                Thanks again for the quick help!