[jboss-user] [EJB/JBoss] - Embedded EJB3 and JNDI lookups

holmes.j do-not-reply at jboss.com
Sun Sep 24 17:52:10 EDT 2006


I'm migrating from a Hibernate setup to an EJB3 setup.  We got our web application to work with the regular EJB3 patch for JBoss, but we'd like to be able to run tests outside of the AS.  So I'm trying to setup the Embedded container for our JUnit tests.

I've got it to the point where it loads the server, finds the datasource, puts the datasource into JNDI, and then finds and loads the EJB3 Session beans.  

The problem is I can't locate the GeoFeatureManagerBean (an EJB3 Stateless session bean) in JNDI.  I've tried looking up GeoFeatureManagerBean, GeoFeatureManagerBean/remote, motionbased/GeoFeatureManagerBean/remote, motionbased/GeoFeatureManagerBean.  Everything says it cannot be found (btw, motionbased is the name of our ear during the AS deploy.  I knew it wouldn't be in there, but I'm desperate now).

I know something's working, because I can find the GeoDataSource at "java:/com.free2be.datasource.GeoDataSource".  I get a ClassCastException coming back from it - which is fine with me.  But I can't for the life of me determine what the JNDI lookup name for a EJB3 Stateless Session Bean in an embedded context is.

I'm not all that familiar with JNDI, but is there a way to print out everything it has?  I know I can use the jmx-console under the AS, but that's not really an option here.



  | 0    [main] DEBUG KernelFactory  - Starting JBoss Kernel construction...
  | 125  [main] DEBUG KernelFactory  - Completed JBoss Kernel construction.  Duration: 125 milliseconds
  | 890  [main] DEBUG BeanXMLDeployer  - Parsing file:/C:/dev/mb/main/components/server/test/resources/embedded-jboss-beans.xml took 718 milliseconds
  | 1109 [main] DEBUG UserTransactionImpl  - new UserTx: org.jboss.ejb3.embedded.UserTransactionImpl at 1242b11
  | 1187 [main] INFO  LocalTxDataSource  - Bound datasource to JNDI name 'java:/com.free2be.datasource.GeoDataSource'
  | 1187 [main] DEBUG BeanXMLDeployer  - Deploying file:/C:/dev/mb/main/components/server/test/resources/embedded-jboss-beans.xml took 1015 milliseconds
  | 1719 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: UserProfile
  | 1922 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/UserProfile.jar!/META-INF/ejb-jar.xml
  | 2469 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/UserProfile.jar!/META-INF/jboss.xml
  | 2531 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 812
  | 2531 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: GpsTrack
  | 2531 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/GpsTrack.jar!/META-INF/ejb-jar.xml
  | 2781 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/GpsTrack.jar!/META-INF/jboss.xml
  | 2812 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 281
  | 2812 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: Activity
  | 2812 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/Activity.jar!/META-INF/ejb-jar.xml
  | 3109 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/Activity.jar!/META-INF/jboss.xml
  | 3156 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 344
  | 3156 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: Climate
  | 3156 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/Climate.jar!/META-INF/ejb-jar.xml
  | 3312 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/Climate.jar!/META-INF/jboss.xml
  | 3328 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 172
  | 3328 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: Equipment
  | 3328 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/Equipment.jar!/META-INF/ejb-jar.xml
  | 3500 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/Equipment.jar!/META-INF/jboss.xml
  | 3531 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 203
  | 3531 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: NoaaWeatherServer
  | 3531 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/NoaaWeatherServer.jar!/META-INF/ejb-jar.xml
  | 3687 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/NoaaWeatherServer.jar!/META-INF/jboss.xml
  | 3703 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 172
  | 3703 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: GeoFeatureBeans
  | 3828 [main] DEBUG Ejb3AnnotationHandler  - found EJB3: ejbName=GenericDaoBean, class=com.garmin.mb.dao.GenericDaoBean, type=STATELESS
  | 3844 [main] DEBUG ProxyDeployer  - no declared remote bindings for : GenericDaoBean
  | 3859 [main] DEBUG Ejb3AnnotationHandler  - found EJB3: ejbName=GeoFeatureDaoBean, class=com.garmin.mb.dao.gis.feature.GeoFeatureDaoBean, type=STATELESS
  | 3859 [main] DEBUG ProxyDeployer  - no declared remote bindings for : GeoFeatureDaoBean
  | 3890 [main] DEBUG Ejb3AnnotationHandler  - found EJB3: ejbName=GeoFeatureManagerBean, class=com.garmin.mb.framework.gis.feature.GeoFeatureManagerBean, type=STATELESS
  | 3890 [main] DEBUG ProxyDeployer  - no declared remote bindings for : GeoFeatureManagerBean
  | 3890 [main] DEBUG ProxyDeployer  - there is remote interfaces for GeoFeatureManagerBean
  | 3890 [main] DEBUG ProxyDeployer  - default remote binding has jndiName of GeoFeatureManagerBean/remote
  | 3953 [main] DEBUG DTDEntityResolver  - trying to resolve system-id [http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd]
  | 3953 [main] DEBUG EJB3DTDEntityResolver  - recognized EJB3 ORM namespace; attempting to resolve on classpath under org/hibernate/ejb
  | 3953 [main] DEBUG EJB3DTDEntityResolver  - located [http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd] in classpath
  | 3969 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 266
  | 3969 [main] DEBUG JaccHelper  - Initialising JACC Context for deployment: PrimaryKey
  | 3984 [main] DEBUG EjbJarDDObjectFactory  - found ejb-jar.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/PrimaryKey.jar!/META-INF/ejb-jar.xml
  | 4031 [main] DEBUG JBossDDObjectFactory  - found jboss.xml jar:file:/C:/dev/mb/main/build/deploy/ejb/PrimaryKey.jar!/META-INF/jboss.xml
  | 4062 [main] INFO  Ejb3Deployment  - EJB3 deployment time took: 93
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | 4062 [main] INFO  MCKernelAbstraction  - installing bean: persistence.units:jar=GeoFeatureBeans.jar,unitName=GeoFeatureDataSource with dependencies:
  | 4062 [main] INFO  MCKernelAbstraction  - 	AbstractDemandMetaData at 8b058b{demand=com.free2be.datasource.GeoDataSource whenRequiredDescribed}
  | 4109 [main] DEBUG EJBContainer  - Initialising interceptors for GenericDaoBean...
  | 4109 [main] DEBUG EJBContainer  - Default interceptors: null
  | 4109 [main] DEBUG EJBContainer  - Class interceptors: []
  | 4109 [main] DEBUG EJBContainer  - All applicable interceptor classes: []
  | 4109 [main] DEBUG EJBContainer  - Initialising interceptors for GeoFeatureDaoBean...
  | 4109 [main] DEBUG EJBContainer  - Default interceptors: null
  | 4109 [main] DEBUG EJBContainer  - Class interceptors: []
  | 4109 [main] DEBUG EJBContainer  - All applicable interceptor classes: []
  | 4219 [main] DEBUG EJBContainer  - Initialising interceptors for GeoFeatureManagerBean...
  | 4219 [main] DEBUG EJBContainer  - Default interceptors: null
  | 4219 [main] DEBUG EJBContainer  - Class interceptors: []
  | 4219 [main] DEBUG EJBContainer  - All applicable interceptor classes: []
  | 4219 [main] INFO  MCKernelAbstraction  - installing bean: jboss.j2ee:jar=GeoFeatureBeans,name=GenericDaoBean,service=EJB3 with dependencies:
  | 4219 [main] INFO  MCKernelAbstraction  - 	AbstractDemandMetaData at df2d38{demand=persistence.units:jar=GeoFeatureBeans.jar,unitName=GeoFeatureDataSource whenRequiredDescribed}
  | 4219 [main] DEBUG Ejb3Deployment  - Bound ejb3 container jboss.j2ee:service=EJB3,jar=GeoFeatureBeans,name=GenericDaoBean
  | 4219 [main] INFO  MCKernelAbstraction  - installing bean: jboss.j2ee:jar=GeoFeatureBeans,name=GeoFeatureDaoBean,service=EJB3 with dependencies:
  | 4219 [main] INFO  MCKernelAbstraction  - 	AbstractDemandMetaData at 873723{demand=persistence.units:jar=GeoFeatureBeans.jar,unitName=GeoFeatureDataSource whenRequiredDescribed}
  | 4234 [main] DEBUG Ejb3Deployment  - Bound ejb3 container jboss.j2ee:service=EJB3,jar=GeoFeatureBeans,name=GeoFeatureDaoBean
  | 4234 [main] INFO  MCKernelAbstraction  - installing bean: jboss.j2ee:jar=GeoFeatureBeans,name=GeoFeatureManagerBean,service=EJB3 with dependencies:
  | 4234 [main] INFO  MCKernelAbstraction  - 	AbstractDemandMetaData at 1f38fc6{demand=jboss.j2ee:jar=GeoFeatureBeans,name=GeoFeatureDaoBean,service=EJB3 whenRequiredDescribed}
  | 4234 [main] DEBUG Ejb3Deployment  - Bound ejb3 container jboss.j2ee:service=EJB3,jar=GeoFeatureBeans,name=GeoFeatureManagerBean
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | lookup 
  |   UserTransaction: org.jboss.ejb3.embedded.UserTransactionImpl
  | 

Here's the test-code ...
package com.garmin.mb.dao.gis.feature.pc;
  | 
  | import static org.junit.Assert.assertEquals;
  | import static org.junit.Assert.assertTrue;
  | import static org.junit.Assert.fail;
  | 
  | import java.util.NoSuchElementException;
  | 
  | import org.junit.AfterClass;
  | import org.junit.Before;
  | import org.junit.BeforeClass;
  | import org.junit.Test;
  | 
  | import com.garmin.mb.dao.EJB3TestContainer;
  | import com.garmin.mb.framework.gis.feature.pc.PopulatedPlaceClassification;
  | 
  | public class PopulatedPlaceClassifcationDAOUnitTest {
  | 
  | 	private static EJB3TestContainer container;
  | 
  | 	private PopulatedPlaceClassificationDao dao;
  | 
  | 	@BeforeClass
  | 	public static void beforeClass() throws Exception {
  | 		container = new EJB3TestContainer();
  | 		container.startup();
  | 	}
  | 
  | 	@AfterClass
  | 	public static void afterClass() throws Exception {
  | 		container.shutdown();
  | 	}
  | 
  | 	@Before
  | 	public void setUp() {
  | 		Object daoToCast = EJB3TestContainer.lookup("GeoFeatureManagerBean/remote");
  | 		this.dao = (PopulatedPlaceClassificationDao) daoToCast;
  | 	}
  | 
  | 	@Test
  | 	public void testFindById() {
  | 		long id = 2;
  | 		PopulatedPlaceClassification value = dao.findById(id, false);
  | 
  | 		assert value != null;
  | 		long pkValue = value.getPopulatedPlaceClassificationPk();
  | 
  | 		assertEquals(pkValue, id);
  | 		assertEquals("Medium-High", value.getDatabaseDescription());
  | 	}
  | 
  | 	@Test
  | 	public void testFindValue() {
  | 		int key = 3;
  | 		PopulatedPlaceClassification value = dao.findByCode(key);
  | 		assertEquals("Medium", value.getDatabaseDescription());
  | 	}
  | 
  | 	@Test
  | 	public void testFindValueNotPresent() {
  | 		int key = 991;
  | 
  | 		try {
  | 			dao.findByCode(key);
  | 			fail();
  | 		} catch (NoSuchElementException e) {
  | 			assertTrue(true);
  | 		}
  | 	}
  | }
  | 

jndi.properties ...
java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
  | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces



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

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



More information about the jboss-user mailing list