[jboss-user] [EJB 3.0] - Re: EJB 3.1/2 Embeddable Usage

sisepago do-not-reply at jboss.com
Thu Oct 9 03:39:48 EDT 2008


After my first try with EJB 3.1/2 Embeddable Usage yesterday, I ran on trouble and then I exchanged mails with Carlo. May be this can help someone.
have fun! 

There are a lot of bugs in Maven which leads into getting an unstable 
classpath configuration. What you're seeing is a wrong version of a 
component showing up.

Make sure you have Maven 2.0.9 installed and try to regenerate the 
.classpath file (mvn eclipse:eclipse).

If all fails 'mvn -Dverbose=true dependency:tree' and compare this with 
what you see in Eclipse.

Also, post on the forum so others might benefit. :-)

Carlo

Serge Emmanuel Pagop wrote:
> Hi carlo,
>
> firstly great job with EJB 3.1 Embeddable prototype, and today I took 
> a little time to try a simple example in eclipse and maven, but with 
> suprise the 
> test case run well throught the maven command "mvn test" and the same 
> example does not work with testing on eclipse "Run As -> JUnit Test".
> May be you can give some tipps, how I can run the test case on 
> eclipse. Thanks. 
>
> I followed the maven pom installation step as on the jboss wiki 
> site: http://wiki.jboss.org/wiki/EJB31Embeddable
>
> 1) here is the test case 
> public class HelloBeanTest {
>
>     private static final Logger log = 
> Logger.getLogger(HelloBeanTest.class);
>
>     private static String getBaseURLToResource( String resource ) {
>         URL url = 
> Thread.currentThread().getContextClassLoader().getResource(resource);
>         String s = url.toString();
>         return s.substring(0, s.length() - resource.length());
>     }
>
>     @Test
>     public void test1() throws NamingException {
>         log.info("Test #1");
>
>         Properties properties = new Properties();
>         // Not according to spec!
>         
> properties.setProperty(EJBContainer.EMBEDDABLE_MODULES_PROPERTY, 
> getBaseURLToResource("org/ormsys/ejb3/HelloBean.class"));
>         EJBContainer container = 
> EJBContainer.createEJBContainer(properties);
>
>         // Note that global naming isn't working yet.
>         InitialContext ctx = new InitialContext();
>         Hello bean = (Hello)ctx.lookup("HelloBean/local");
>
>         String now = new Date().toString();
>         String actual = bean.sayHello(now);
>         assertEquals("Hello " + now, actual);
>
>         container.close();
>     }
>
> }
>
> 2) Here is the error trace
>
> java.lang.NoSuchFieldError: factoryFinder
> at org.jboss.virtual.VFS.init(VFS.java:71)
> at org.jboss.virtual.VFS.(VFS.java:51)
> at 
> org.jboss.ejb3.embedded.JBossEJBContainer.deployMain(JBossEJBContainer.java:140)
> at 
> org.jboss.ejb3.embedded.JBossEJBContainer.deployMain(JBossEJBContainer.java:134)
> at 
> org.jboss.ejb3.embedded.JBossEJBContainer.(JBossEJBContainer.java:88)
> at 
> org.jboss.ejb3.embedded.JBossEJBContainerProvider.createEJBContainer(JBossEJBContainerProvider.java:56)
> at javax.ejb.EJBContainer.createEJBContainer(EJBContainer.java:99)
> at org.ormsys.ejb3.HelloBeanTest.test1(HelloBeanTest.java:36)
> 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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
> at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
>


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

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



More information about the jboss-user mailing list