pass seam component to external ejb call causes exception [u
leezard Jun 21, 2007 4:56 PMHi all again,
My next seam problem is: I have an external ejb, I call to perform some operations. I have also set of classes delivered in separate jar. One of those classes was marked as seam component I couldn't do it via annotation so I added:
<component name="request" class="com.jboss.seam.test.TestTransactionRequest" auto-create="true" scope="CONVERSATION"/>
Now my bean code is:
@Stateful @Name("processTransactionRevoke") @Scope(ScopeType.CONVERSATION) public class ProcessTransactionRevokeBean implements ProcessTransactionRevoke { private boolean revokeSuccesful; @Logger private Log logger; @RequestParameter String transactionId; @In TestTransactionRequest request; @EJB TransactionRevokeService service; @Begin(pageflow="transactionRevoke") public void begin() { logger.info("Begin called"); request.setParentTransaction(transactionId); logger.info("Parent trid: " + request.getParentTransaction()); } public void revokeTransaction() { logger.info("processing"); try { logger.info("Parent trid: " + request.getParentTransaction()); revokeService.revokeTransaction(revokeRequest, false); revokeSuccesful = true; logger.info("succeed"); } catch(Exception e) { logger.info("failed"); e.printStackTrace(); revokeSuccesful = false; } } public boolean isRevokeSuccesful() { return revokeSuccesful; } @Remove @Destroy public void destroy() {} }
Logs say that request is initialized and has parentTransaction set properly, but when I pass request to service.revokeTransaction method I get an exception saying:
22:44:03,952 ERROR [STDERR] javax.ejb.EJBTransactionRolledbackException 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87) 22:44:03,952 ERROR [STDERR] at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130) 22:44:03,952 ERROR [STDERR] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:278) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.remoting.IsLocalInterceptor.invokeLocal(IsLocalInterceptor.java:79) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:70) 22:44:03,952 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) 22:44:03,952 ERROR [STDERR] at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:103) 22:44:03,952 ERROR [STDERR] at $Proxy89.revokeTransaction(Unknown Source) ... 22:44:03,962 ERROR [STDERR] Caused by: java.lang.NullPointerException 22:44:03,962 ERROR [STDERR] at org.jboss.seam.intercept.JavaBeanInterceptor.markDirty(JavaBeanInterceptor.java:94) 22:44:03,962 ERROR [STDERR] at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:79) 22:44:03,962 ERROR [STDERR] at com.jboss.seam.test.TestTransactionRequest_$$_javassist_7.getParentTransaction(TestTransactionRevokeRequest_$$_javassist_7.java) 22:44:03,962 ERROR [STDERR] at com.jboss.seam.test.bean.TransactionRevokeServiceBean.revokeTransaction(TransactionRevokeServiceBean.java:67)
What's wrong with it?