It may sound like too much of a quick fix, but are you using the embeddable distribution and all libs with it? I believe that class you're looking for is in the Geronimo-transaction jar file in your distro.
-----Original Message----- From: faizbash [mailto:[email protected]] Sent: Saturday, October 17, 2009 12:01 PM To: [email protected] Subject: Re: OpenEJB 3.1 as embeddable container I included openejb-core-3.1.2.jar and it solved the problem but I am getting another exception now: Attempted to load OpenEJB. OpenEJB has encountered a fatal error and cannot be started: OpenEJB encoutnered an unexpected error while attempting to instantiate the assembler.: org/apache/geronimo/transaction/manager/XAWork javax.naming.NamingException at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:55) at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory. java:42) at javax.naming.spi.NamingManager.getInitialContext(NamingManage.java:667) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:228) ... The exception is caused by: Context context = new InitialContext(props); I dont think I am using the openejb-api.jar for anything. Quintin Beukes-2 wrote: > > You have to include openejb-core-3.1.2.jar in your test classpath as > well. Most IDEs have a separate classpath for unit tests. This > classpath will be appended onto your normal classpath. > > The reason for including core is because for the unit tests to run the > embedded container, you are basically running a complete openejb > instance inside of the JVM, and for this you need the core of OpenEJB > included. Further, a LocalInitialContextFactory only makes sense in an > embedded container or application server of some sort, because it can > only work for EJB references inside the same JVM, which is why it's > only included in the core jar. > > One more question, are you using the openejb-api jar for one/more of > the LocalClient/RemoteClient/EjbDeployment annotations? > > This should solve your problem. > > Quintin Beukes > > > > On Sat, Oct 17, 2009 at 3:31 PM, faizbash <[email protected]> wrote: >> >> Quintin, >> Thanks for the response. >> >> I'm using openejb-api-3.1.1.jar and openejb-client-3.1.1.jar. I am not >> using >> Maven. >> This is what I got after running >> System.out.println(System.getProperty("java.class.path")); >> >> >> /home/faizbash/NetBeansProjects/CASE_management_sys/CASE_management_sys-ejb/build/jar: >> /home/faizbash/netbeans-6.7/java2/modules/ext/junit-3.8.2.jar: >> /home/faizbash/netbeans-6.7/platform10/modules/ext/junit-4.5.jar: >> /home/faizbash/lib/openejb-3.1.1/lib/openejb-api-3.1.1.jar: >> /home/faizbash/lib/openejb-3.1.1/lib/openejb-client-3.1.1.jar >> ... >> >> and lots more. >> >> Sorry I forgot to include my code in the previous post: >> >> @Before >> public void bootContainer() throws Exception{ >> Properties props = new Properties(); >> props.put(Context.INITIAL_CONTEXT_FACTORY, >> "org.apache.openejb.client.LocalInitialContextFactory"); >> Context context = new InitialContext(props); >> crudService = (CrudService) context.lookup("CrudServiceBean"); >> } >> >> >> >> >> Quintin Beukes-2 wrote: >>> >>> Two questions: >>> >>> 1. Which jars are you including in your classpath. Can you do a >>> System.out.println(System.getProperty("java.class.path")); >>> 2. If you are using maven, can you please paste your <dependencies> >>> element of the POM. >>> >>> Quintin Beukes >>> >>> >>> >>> On Sat, Oct 17, 2009 at 10:23 AM, faizbash <[email protected]> wrote: >>>> >>>> Hello, >>>> >>>> I ve been trying to launch OpenEJB as an embeddable container for JUnit >>>> tests, but I keep getting the following error: >>>> >>>> Cannot instantiate class: >>>> org.apache.openejb.client.LocalInitialContextFactory >>>> javax.naming.NoInitialContextException >>>> at >>>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) >>>> at >>>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) >>>> at javax.naming.InitialContext.init(InitialContext.java:223) >>>> at javax.naming.InitialContext.<init>(InitialContext.java:197) >>>> ... >>>> >>>> >>>> I am using OpenEJB 3.1, and when I checked the library, the >>>> "LocalInitialContextFactory" class >>>> is missing but the "RemoteInitialContextFactory" is available and I >>>> could >>>> run the tests remotely, >>>> but not locally. >>>> >>>> I ve been searching forums but could find solution to this problem. >>>> Can anyone please tell me what is the problem? >>>> >>>> >>>> -- >>>> View this message in context: >>>> http://www.nabble.com/OpenEJB-3.1-as-embeddable-container-tp25936338p25936338.html >>>> Sent from the OpenEJB User mailing list archive at Nabble.com. >>>> >>>> >>> >>> >> >> -- >> View this message in context: >> http://www.nabble.com/OpenEJB-3.1-as-embeddable-container-tp25936338p25938290.html >> Sent from the OpenEJB User mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://www.nabble.com/OpenEJB-3.1-as-embeddable-container-tp25936338p25939549.html Sent from the OpenEJB User mailing list archive at Nabble.com. No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.5.422 / Virus Database: 270.14.20/2441 - Release Date: 10/16/09 18:39:00
