[jboss-user] [EJB 3.0] - Re: EJB 3.1 Embeddable

jaikiran do-not-reply at jboss.com
Thu Nov 6 09:57:52 EST 2008


I tried this on a sample project with EJB3.1 embedded and ran into the same error:

-------------------------------------------------------------------------------
  | Test set: jaikiran.ejb3_1.client.EJBClientTestCase
  | -------------------------------------------------------------------------------
  | Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.328 sec <<< FAILURE!
  | testLookup(jaikiran.ejb3_1.client.EJBClientTestCase)  Time elapsed: 3.157 sec  <<< ERROR!
  | java.lang.IllegalStateException: Incompletely deployed:
  | 
  | *** DEPLOYMENTS IN ERROR: Name -> Error
  | BeanMetaDataDeployer -> java.lang.IllegalArgumentException: Wrong arguments. new for target java.lang.reflect.Constructor expected=[org.jboss.dependency.spi.Controller] actual=[org.jboss.kernel.Kernel]
  | 
  | 	at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:290)
  | 	at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:186)
  | 	at org.jboss.ejb3.embedded.JBossEJBContainer.deploy(JBossEJBContainer.java:127)
  | 	at org.jboss.ejb3.embedded.JBossEJBContainer.deploy(JBossEJBContainer.java:120)
  | 	at org.jboss.ejb3.embedded.JBossEJBContainer.<init>(JBossEJBContainer.java:73)
  | 	at org.jboss.ejb3.embedded.JBossEJBContainerProvider.createEJBContainer(JBossEJBContainerProvider.java:56)
  | 	at javax.ejb.EJBContainer.createEJBContainer(EJBContainer.java:99)
  | 	at jaikiran.ejb3_1.client.EJBClientTestCase.testLookup(EJBClientTestCase.java:37)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
  | 	at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
  | 	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
  | 	at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
  | 	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
  | 	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
  | 	at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
  | 	at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
  | 	at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
  | 	at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
  | 	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
  | 	at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
  | 	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
  | 	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
  | 	at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
  | 	at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
  | 	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
  | 
  |  

Based on what i saw from Ales' comment in the JIRA https://jira.jboss.org/jira/browse/JBMICROCONT-176, i changed the embedded-bootstrap-beans.xml in the jboss-ejb3-embedded-1.0.0-SNAPSHOT.jar to use this:

 <!-- POJO Deployment -->
  |    <bean name="BeanDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanDeployer"/>
  |    <bean name="KernelDeploymentDeployer" class="org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer"/>
  |    <bean name="BeanMetaDataDeployer" class="org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer">
  |       <constructor><parameter><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
  |    </bean>

Earlier it was using 

<constructor><parameter><inject bean="jboss.kernel:service=Kernel"/></parameter></constructor>

After this change, the test case passed. 

P.S: I don't have much idea about the Kernel, so i am not sure if i did this right :-)

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187369#4187369

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187369



More information about the jboss-user mailing list