[jboss-user] [EJB 3.0] - Re: How to inject sessionbean from sessionbean from another
j-n00b
do-not-reply at jboss.com
Tue Jan 27 08:59:40 EST 2009
Jaikiran, I just tried the @Service notation:
| package ae;
|
| import javax.annotation.Resource;
| import javax.ejb.TransactionAttribute;
| import javax.ejb.TransactionAttributeType;
|
| import org.apache.log4j.Logger;
| import org.jboss.ejb3.annotation.Depends;
| import org.jboss.ejb3.annotation.Management;
| import org.jboss.ejb3.annotation.Service;
|
| @Service
| @Management(MasterMBean.class)
| @Depends( { "jboss.j2ee:jar=SubEJB.jar,name=CalculatorBean,service=EJB3" })
| public class Master implements MasterMBean {
|
| private static final Logger log = Logger.getLogger(Master.class);
|
| @EJB(mappedName = Calculator.JNDI_NAME)
| private Calculator additionBean;
|
| @TransactionAttribute(TransactionAttributeType.NEVER)
| public void start() throws Exception {
| log.info("### starting");
|
| if (additionBean == null) {
| log.error("### unable to inject CalculatorBean!!!");
| return;
| }
|
| long result = additionBean.add(new int[] { 1, 2, 3 });
| log.info(result);
|
| // TODO use a quartz job to run a calculation every 5 seconds!
| }
|
| public void stop() {
| log.info("### stopping");
| }
| }
|
After removing the master-mbean-jboss.xml and deploying the SAR into server/all/deploy-hasingleton, the Injection worked pretty fine! But the old approach still does not work. Can you tell me why?
Another thing: as you can see, I had to annotate the start() method, because I got an Exception:
anonymous wrote :
| 14:54:06,031 INFO [ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory at 1e287e5 started
| 14:54:06,031 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
| 14:54:06,093 INFO [TomcatDeployment] deploy, ctxPath=/, vfsUrl=ROOT.war
| 14:54:06,156 INFO [TomcatDeployment] deploy, ctxPath=/jmx-console, vfsUrl=jmx-console.war
| 14:54:06,265 INFO [JBossASKernel] Created KernelDeployment for: SubEJB.jar
| 14:54:06,265 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=SubEJB.jar,name=CalculatorBean,service=EJB3
| 14:54:06,265 INFO [JBossASKernel] with dependencies:
| 14:54:06,265 INFO [JBossASKernel] and demands:
| 14:54:06,265 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
| 14:54:06,265 INFO [JBossASKernel] and supplies:
| 14:54:06,265 INFO [JBossASKernel] jndi:AECalculator
| 14:54:06,265 INFO [JBossASKernel] jndi:CalculatorBean/remote-ae.Calculator
| 14:54:06,265 INFO [JBossASKernel] Class:ae.Calculator
| 14:54:06,265 INFO [JBossASKernel] Added bean(jboss.j2ee:jar=SubEJB.jar,name=CalculatorBean,service=EJB3) to KernelDeployment of: SubEJB.jar
| 14:54:06,375 INFO [SessionSpecContainer] Starting jboss.j2ee:jar=SubEJB.jar,name=CalculatorBean,service=EJB3
| 14:54:06,390 INFO [EJBContainer] STARTED EJB: ae.CalculatorBean ejbName: CalculatorBean
| 14:54:06,437 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
|
| AECalculator - EJB3.x Default Remote Business Interface
| CalculatorBean/remote-ae.Calculator - EJB3.x Remote Business Interface
|
| 14:54:06,593 INFO [EJBContainer] STARTED EJB: ae.Master ejbName: Master
| 14:54:06,609 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
|
|
| 14:54:06,625 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=master.sar,name=Master,service=EJB3,type=ManagementInterface
| 14:54:06,625 INFO [JBossASKernel] with dependencies:
| 14:54:06,625 INFO [JBossASKernel] and demands:
| 14:54:06,625 INFO [JBossASKernel] jndi:AECalculator
| 14:54:06,625 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService
| 14:54:06,625 INFO [JBossASKernel] jboss.j2ee:jar=SubEJB.jar,name=CalculatorBean,service=EJB3
| 14:54:06,625 INFO [JBossASKernel] and supplies:
| 14:54:06,625 INFO [JBossASKernel] jndi:Master/remote
| 14:54:06,625 INFO [JBossASKernel] Class:ae.MasterMBean
| 14:54:06,625 INFO [JBossASKernel] Installing bean(jboss.j2ee:jar=master.sar,name=Master,service=EJB3,type=ManagementInterface) into kernel
| 14:54:06,640 INFO [Master] ### starting
| 14:54:06,687 ERROR [ServiceContainer] Encountered an error in start of Master
| java.lang.RuntimeException: Problem registering @Management interface for @Service class ae.Master
| at org.jboss.ejb3.service.ServiceContainer.registerManagementInterface(ServiceContainer.java:727)
| [...]
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.lang.RuntimeException: javax.management.MBeanException
| at org.jboss.ejb3.deployers.JBossASKernel.installMBean(JBossASKernel.java:181)
| at org.jboss.ejb3.service.ServiceContainer.registerManagementInterface(ServiceContainer.java:699)
| ... 50 more
| Caused by: javax.management.MBeanException
| at org.jboss.ejb3.service.ServiceMBeanDelegate.invoke(ServiceMBeanDelegate.java:219)
| at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
| at org.jboss.ejb3.deployers.JBossASKernel.invokeOptionalMethod(JBossASKernel.java:287)
| at org.jboss.ejb3.deployers.JBossASKernel.installMBean(JBossASKernel.java:177)
| ... 51 more
| Caused by: javax.ejb.EJBException: java.lang.RuntimeException: cannot import a transaction context when a transaction is already associated with the thread
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:77)
| at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:190)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
| at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
| at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
|
Why is that, actually? I don't have any problems when looking up the bean manually
Greetings,
Andre
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4204993#4204993
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4204993
More information about the jboss-user
mailing list