[JBoss Seam] - Service objects with dependencies are deployed in different
by hsoldier
Hello all,
I have a very strange problem with our application using JBoss Seam 2.0.0.BETA1.
We have two annotated service objects, CORBAOrb and AlarmConsumer. The latter one has a dependency on the first one (we used the @Depends annotation).
As one would expect, the dependency is satisfied when the EAR file is deployed on to JBoss AS 4.2.0.GA. That makes me think that the annotations are correct and I do not have to include the source code here in my post.
The following is the relevant extract from the server.log file. Everything works fine because the CORBAOrb MBean is started before the AlarmConsumer MBean, which depends on its services.
| 2007-08-20 11:43:39,077 INFO [org.jboss.ejb3.JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.service.ServiceContainer
| 2007-08-20 11:43:39,093 INFO [org.jboss.ejb3.JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=oam-ear-0.1.ear,jar=oam-ejb3-0.1.jar,name=AlarmConsumerMBean,service=EJB3 with dependencies:
| 2007-08-20 11:43:39,093 INFO [org.jboss.ejb3.JmxKernelAbstraction] FWOAM:service=CORBAOrb
| 2007-08-20 11:43:39,109 INFO [org.jboss.ejb3.JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.service.ServiceContainer
| 2007-08-20 11:43:39,109 INFO [org.jboss.ejb3.JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=oam-ear-0.1.ear,jar=oam-ejb3-0.1.jar,name=CORBAOrbMBean,service=EJB3 with dependencies:
|
| 2007-08-20 11:43:39,156 INFO [org.jboss.ejb3.EJBContainer] STARTED EJB: com.openet.oam.beans.mbeans.corba.CORBAOrbMBean ejbName: CORBAOrbMBean
| 2007-08-20 11:43:39,156 INFO [com.openet.oam.beans.mbeans.corba.CORBAOrbMBean] CORBAOrb - Creating
| 2007-08-20 11:43:39,171 INFO [com.openet.oam.corba.CorbaInterface] Name Service URL: corbaloc::10.0.3.1:22500/NameService
| 2007-08-20 11:43:39,171 INFO [com.openet.oam.corba.CorbaInterface] Event Service URL: corbaloc::10.0.3.1:22501/DefaultEventChannelFactory
| 2007-08-20 11:43:39,421 INFO [com.openet.oam.beans.mbeans.corba.CORBAOrbMBean] CORBAOrb - Starting
|
| 2007-08-20 11:43:40,390 INFO [org.jboss.ejb3.EJBContainer] STARTED EJB: com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean ejbName: AlarmConsumerMBean
| 2007-08-20 11:43:40,390 INFO [com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean] EventListener - creating channel consumer AlarmChannelConsumer
| 2007-08-20 11:43:40,422 INFO [com.openet.oam.corba.CorbaInterface] initialiseEventChannel('AlarmChannel')
| 2007-08-20 11:43:40,500 INFO [com.openet.oam.corba.CorbaInterface] Looking for EventChannel 'AlarmChannel'
| 2007-08-20 11:43:40,531 INFO [com.openet.oam.corba.CorbaInterface] EventChannel 'AlarmChannel' resolved
| 2007-08-20 11:43:40,531 INFO [com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean] EventListener - starting channel consumer AlarmChannelConsumer
| 2007-08-20 11:43:40,547 INFO [com.openet.oam.corba.CorbaInterface] initialiseConsumer()
|
However if I run the code as a Seam TestNG integration test where our test extends SeamTest, the deployment order is different.
I used the three jars coming with JBoss Seam 2.0.0.BETA1 in its lib directory: jboss-embedded-all.jar, hibernate-all.jar and thirdparty-all.jar.
The following printout from TestNG shows that the same two MBeans are started in the wrong order, causing exceptions:
| [testng] INFO 20-08 16:54:35,564 [org.jboss.ejb3.MCKernelAbstraction.install():119] installing bean: jboss.j2ee:jar=test-classes,name=AlarmConsumerMBean,service=EJB3 with dependencies:
| [testng] INFO 20-08 16:54:35,564 [org.jboss.ejb3.MCKernelAbstraction.install():131] FWOAM:service=CORBAOrb
| [testng] INFO 20-08 16:54:35,564 [org.jboss.ejb3.MCKernelAbstraction.install():119] installing bean: jboss.j2ee:jar=test-classes,name=CORBAOrbMBean,service=EJB3 with dependencies:
|
| [testng] INFO 20-08 16:54:35,611 [org.jboss.ejb3.EJBContainer.start():580] STARTED EJB: com.openet.oam.beans.mbeans.corba.CORBAOrbMBean ejbName: CORBAOrbMBean
| [testng] INFO 20-08 16:54:35,611 [org.jboss.ejb3.MCKernelAbstraction.install():119] installing bean: FWOAM:service=CORBAOrb with dependencies:
|
| [testng] INFO 20-08 16:54:35,705 [org.jboss.ejb3.EJBContainer.start():580] STARTED EJB: com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean ejbName: AlarmConsumerMBean
| [testng] INFO 20-08 16:54:35,705 [org.jboss.ejb3.MCKernelAbstraction.install():119] installing bean: FWOAM:service=AlarmConsumer with dependencies:
| [testng] INFO 20-08 16:54:35,705 [org.jboss.ejb3.MCKernelAbstraction.install():131] FWOAM:service=CORBAOrb
|
| [testng] INFO 20-08 16:54:35,814 [com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean.create():65] EventListener - creating channel consumer AlarmChannelConsumer
| [testng] INFO 20-08 16:54:35,814 [com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean.create():72] ERROR : null
| [testng] javax.management.MBeanException
| [testng] INFO 20-08 16:54:35,830 [com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean.start():87] EventListener - starting channel consumer AlarmChannelConsumer
| [testng] INFO 20-08 16:54:35,830 [com.openet.oam.beans.mbeans.corba.alarms.AlarmConsumerMBean.start():102] ERROR : null
| [testng] javax.management.MBeanException
|
| [testng] INFO 20-08 16:54:35,846 [com.openet.oam.beans.mbeans.corba.CORBAOrbMBean.create():29] CORBAOrb - Creating
| [testng] INFO 20-08 16:54:35,846 [com.openet.oam.corba.CorbaInterface.<init>():62] Name Service URL: corbaloc::10.0.3.1:22500/NameService
| [testng] INFO 20-08 16:54:35,846 [com.openet.oam.corba.CorbaInterface.<init>():63] Event Service URL: corbaloc::10.0.3.1:22501/DefaultEventChannelFactory
| [testng] INFO 20-08 16:54:35,861 [com.openet.oam.beans.mbeans.corba.CORBAOrbMBean.start():41] CORBAOrb - Starting
|
Did anyone experienced this problem before? Is this a known issue?
As far I can see, the behaviour of the MCKernelAbstraction is different from the JmxKernelAbstraction.
We tried to debug through the Embeddable EJB3 container but it is unclear what went into the jboss-embedded-all.jar file in terms of compiled source code (list of CVS or SVN projects, branches and tags/labels)? We checked out the 4.2.0.GA source code and also JBoss Microcontainer 2.0 but the lines did not match.
Any help would be really appreciated.
We think that Seam is a great enabling framework to write simple code and the idea that you can write integration tests for your Seam application when/while you are developing is brilliant!
Only if we could get consistent behaviur between the fully-blown JBoss AS and the EJB3 Embeddable...
Best regards:
Peter
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4076018#4076018
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4076018
18Â years, 9Â months
[JBoss Seam] - Re: Flex + Seam integration approaches
by cingram
I have working code for a factory that will look up Seam comps using Flex Data Services. The code is pretty trivial and is based a lot on the Spring factory. FYI the issue isn't so much looking up the comps from the Factory. It is more getting it integrated with the conversation model of seam as well as the JSF life cycle. You have to provide an adapter that will integrate in to the JSF life cycle. I have some working code for that as well(it is definitely trivial). If you are interested I can post it. I gave up that route for a few reasons 1. Price 2. Size the libs added about 20 extra megs for me. 3. Time I needed to get a working prototype up and going and didn't have alot of time to figure out how to get the conversation model integrated.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4076011#4076011
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4076011
18Â years, 9Â months