[question bête] nommage des EJBs 3.1 lors des tests

Nicolas Delsaux <[email protected]> Fri, 4 Feb 2011 09:53:44 +0100
Newsgroups gmane.comp.java.french.general
Message-ID <[email protected]>
Salut
je suis en train de faire un petit test d'EJB 3.1, et je rencontre
quielques petits soucis de nommage (étonnant, non ?)
J'ai donc créé un projet maven multi-module (ça me semblait la bonne
façon de faire, non ?)

tutorial
  +-- entity qui contient mon bean persistable en JPA qui sera déployé
dans un jar
  +-- ejb qui contient mon ejb qui s'appelle TemplateEJB, qui sera
déployé dans un jar ejb
  +-- et bientôt mon application web qui devrait utiliser MetaWidget
(mais on n'y est pas encore)

Comme je suis un petit gars sérieux, je me suis dit qu'il serait de
bon ton de faire un test JUnit de mon EJB.
Donc, suivant les préconisations de Java EE6 et Glassfish 3 (A.
Goncalvez, aidé en sous-main par Alexis MP), j'ai créé un test
unitaire comme ça :

public class TemplateEJBTest {

	private static EJBContainer ejbContainer;
	private static Context context;

	@BeforeClass
	public static void initContainer() throws Exception {
		ejbContainer = EJBContainer.createEJBContainer();
		context = ejbContainer.getContext();
	}

	private TemplateEJB ejb;
	
	@Before
	public void findEJB() throws NamingException {
		ejb = (TemplateEJB) context.lookup("java:global/ejb/TemplateEJB");
	}

	@AfterClass
	public static void closeContainer() throws Exception {
		ejbContainer.close();
	}
	
	private Template createTemplate(String name) {
		Template toCreate = new Template();
		toCreate.name = name;
		toCreate.comments="test template";
		return ejb.create(toCreate);
	}

	@Test
	public void testCreateTemplate() {
		Template t = createTemplate("CreateTemplate");
		
		List<Template> all = ejb.findAll();
		Assert.assertNotNull(all);
		Assert.assertEquals(1, all.size());
	}
}

Seulement, quand je lance mon test unitaire, je me prends
systématiquement des NamingException.
Alors quoi, j'ai pas compris comment marchait le nommage JNDI ? sans
doute, sans doute. Mais je dois mettre quoi comme nom ?

--
Nicolas Delsaux