problem with microcontainer-alpha9 while testing ejb3s. cann
mmarcom Sep 24, 2006 1:42 PMhello all,
i have just upgraded jboss ejb3 to rc9 release, so ihav updated also the embeddable alpha to rc9.
i am running junit test by starting jboss microcontainer in my junit (testNG) test
i am currently using maven2... btw here' smy pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ejbJ2ME</groupId> <artifactId>ejbJ2ME</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>ejbJ2ME</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>5.1</version> <scope>test</scope> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>j2meCore</groupId> <artifactId>J2MECore</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>microcontainer</groupId> <artifactId>hibernate-all</artifactId> <version>rc9</version> <scope>system</scope> <systemPath>${basedir}\lib\hibernate-all-rc9.jar</systemPath> </dependency> <dependency> <groupId>microcontainer</groupId> <artifactId>jboss-ejb3-all</artifactId> <version>rc9</version> <scope>system</scope> <systemPath>${basedir}\lib\jboss-ejb3-all-rc9.jar</systemPath> </dependency> <dependency> <groupId>microcontainer</groupId> <artifactId>jcainflow</artifactId> <version>rc9</version> <scope>system</scope> <systemPath>${basedir}\lib\jcainflow-rc9.jar</systemPath> </dependency> <dependency> <groupId>microcontainer</groupId> <artifactId>thirdparty-all</artifactId> <version>rc9</version> <scope>system</scope> <systemPath>${basedir}\lib\thirdparty-all-rc9.jar</systemPath> </dependency> <dependency> <groupId>microcontainer</groupId> <artifactId>jms-ra</artifactId> <version>rc9</version> <scope>system</scope> <systemPath>${basedir}\lib\jms-ra-rc9.jar</systemPath> </dependency> <dependency> <groupId>microcontainer</groupId> <artifactId>ehcache</artifactId> <version>1.2</version> <scope>system</scope> <systemPath>${basedir}\lib\ehcache-1.2.jar</systemPath> </dependency> <dependency> <groupId>dbunit</groupId> <artifactId>dbunit</artifactId> <version>2.1</version> <scope>test</scope> </dependency> </dependencies> <build> <testSourceDirectory>src/test</testSourceDirectory> <testResources> <testResource> <directory>src/test/resources</directory> <includes> <include>*.*</include> </includes> </testResource> </testResources> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <!--<version>2.8-SNAPSHOT</version>--> <configuration> <suiteXmlFiles> <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> </plugin> </plugins> </pluginManagement> </build> <pluginRepositories> <pluginRepository> <id>tapestry.javaforge</id> <url>http://howardlewisship.com/repository</url> </pluginRepository> </pluginRepositories> </project>
i have a base junit test which is supposed to statup EJB3 container
here's code
package example1; import java.util.Hashtable; import org.jboss.ejb3.embedded.*; import org.testng.annotations.Configuration; import org.testng.annotations.ExpectedExceptions; import org.testng.annotations.Test; import junit.framework.*; import junit.extensions.*; import javax.naming.*; /** * Boots the JBoss Microcontainer with an EJB3 configuration. * <p> * You can also use this class to lookup managed beans from JNDI. * * @author christian.bauer@jboss.com */ public class EJB3Container { private static InitialContext initialContext; private EJB3StandaloneDeployer deployer; @Configuration(groups = "integration.ejb3", beforeTest = true) public void startup() { try { System.err.println("---- bootstrapping EJB3 container...."); // Boot the JBoss Microcontainer with EJB3 settings, loads ejb3-interceptors-aop.xml EJB3StandaloneBootstrap.boot(null); System.err.println("...... deploying embedded-jboss-beans...."); EJB3StandaloneBootstrap.scanClasspath(); // Deploy everything we got deployer = new EJB3StandaloneDeployer(); deployer.setKernel(EJB3StandaloneBootstrap.getKernel()); deployer.create(); System.err.println("...... deployer created...."); deployer.start(); System.err.println("...... deployer started...."); Hashtable props = new Hashtable(); props.put("java.naming.factory.initial", "org.jnp.interfaces.LocalOnlyContextFactory"); props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces"); // Create InitialContext from jndi.properties initialContext = new InitialContext(props); System.err.println("---- end of bootstrapping EJB3 container....InitialContext is:"); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException(ex); } } @Configuration(groups = "integration.ejb3", afterTest = true) public void shutdown() { try { System.err.println("---- Invoking EJB3.shutdown.."); deployer.stop(); deployer.destroy(); EJB3StandaloneBootstrap.shutdown(); } catch (Exception ex) { throw new RuntimeException(ex); } } public static Object lookup(String beanName) { try { return initialContext.lookup(beanName); } catch (NamingException ex) { throw new RuntimeException("Couldn't lookup: " + beanName, ex); } } }
i have a stateless session bean, here's excerpt of class
import com.mm.j2me.core.Agency; import com.mm.j2me.core.JobApplication; import com.mm.j2me.core.Opportunity; import javax.persistence.*; import javax.ejb.*; import javax.persistence.*; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Vector; @Stateless @Local ( {FacadeIF.class}) public class TestFacade implements FacadeIF { @PersistenceContext EntityManager em; ..
i m trying to look it up in my tests usign following code:
TestFacade sessionFacade = (TestFacade) EJB3Container.lookup("TestFacade/local");
it results in a NUllPointerException.........
can anyone help me out in trying to find why i cannot lookup my EJB?
am i starting EJB3 container in the wrong way?