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?
