deploy vritual jar failed on embedded jboss
liuxiaodu Apr 29, 2008 3:27 PMHello,
I am trying to use embedded jboss to test my EJB3 session bean. It is failed on the vritual jar deployment.
I am using maven2 + jdk1.5.
The error message:
-------------------------------------------------------------------------------
Test set: TestSuite
-------------------------------------------------------------------------------
Tests run: 23, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 6.429 sec <<< FAILURE!
startup(com.westernasset.calendar.CalendarServiceBeanTest) Time elapsed: 0 sec <<< FAILURE!
java.lang.RuntimeException: Unable to deploy
at com.westernasset.calendar.EJB3Container.deploy(EJB3Container.java:66)
at com.westernasset.calendar.EJB3Container.startup(EJB3Container.java:24)
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:597)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:398)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:145)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:82)
at org.testng.TestRunner.beforeRun(TestRunner.java:490)
at org.testng.TestRunner.run(TestRunner.java:458)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:301)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:296)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:276)
at org.testng.SuiteRunner.run(SuiteRunner.java:191)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:808)
at org.testng.TestNG.runSuitesLocally(TestNG.java:776)
at org.testng.TestNG.run(TestNG.java:701)
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
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:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
Caused by: org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
*** CONTEXTS IN ERROR: Name -> Error
vfs://12094970850210/ -> java.lang.AssertionError: expected a jar or file url, but was vfs://12094970850210/
at com.westernasset.calendar.EJB3Container.deploy(EJB3Container.java:65)
... 27 more
Caused by: org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
*** CONTEXTS IN ERROR: Name -> Error
vfs://12094970850210/ -> java.lang.AssertionError: expected a jar or file url, but was vfs://12094970850210/
at com.westernasset.calendar.EJB3Container.deploy(EJB3Container.java:65)
... 27 more
Please help.
Thanks.
<dependency> <groupId>org.jboss.seam.embedded</groupId> <artifactId>hibernate-all</artifactId> <version>beta3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.seam.embedded</groupId> <artifactId>jboss-embedded-all</artifactId> <version>beta3</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.seam.embedded</groupId> <artifactId>thirdparty-all</artifactId> <version>beta3</version> <scope>test</scope> </dependency> import org.jboss.deployers.spi.DeploymentException; import org.jboss.embedded.Bootstrap; import org.jboss.virtual.plugins.context.vfs.AssembledContextFactory; import org.jboss.virtual.plugins.context.vfs.AssembledDirectory; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; public class EJB3Container { private static boolean globalSetup = false; private static AssembledDirectory jar; @BeforeTest protected void startup() { if (globalSetup) { return; } try { Bootstrap.getInstance().bootstrap(); deploy(); } catch (DeploymentException e) { e.printStackTrace(); } } @AfterTest protected void shutdown() { if (globalSetup) { return; } undeploy(); } private void deploy() { jar = AssembledContextFactory.getInstance().create("ejbTest.jar"); jar.addClass(BusinessCalendar.class); jar.addClass(BusinessCalendarDate.class); jar.addClass(CalendarService.class); jar.addClass(CalendarServiceSessionBean.class); jar.addClass(Holiday.class); jar.addClass(HolidayCalendar.class); jar.addClass(HolidayHandlerType.class); jar.mkdir("META-INF").addResource("testPersistence.xml", "persistence.xml"); try { Bootstrap.getInstance().deploy(jar); } catch (DeploymentException e) { e.fillInStackTrace(); throw new RuntimeException("Unable to deploy", e); } } private static void undeploy() { try { Bootstrap.getInstance().undeploy(jar); AssembledContextFactory.getInstance().remove(jar); } catch (DeploymentException e) { throw new RuntimeException("Unable to undeploy", e); } } }