Page 1 sur 1

[RESOLU] TP11]: Avalanche d'erreur avec le ServiceLocator

Publié : 07 janv. 2017 14:45
par NicoH
Bonjour à tous,
Je suis sous ubuntu 14.04 avec le JDK 1.7 et eclipse mars.2.

Je rencontre une avalanche d'erreurs dans le TP11 avec l'ensemble des tests service et delegate (dès qu'on passe par le ServiceLocator quoi).

Aucun test ne passe pour les delegate ou les services, ni dans eclipse, ni dans ant.
D'ailleurs, même les tests portant sur du code fournit ne passent pas.

Y'aurait-il quelqu'un qui connaisse déjà un peu JEE pour m'aider car là, je pense avoir fait le tour du sujet et je n'ai toujours pas trouvé la solution.

J'ai trouvé ce topic sur le forum :
http://deptmedia.cnam.fr/phpBB2/viewtop ... =27&t=9163

Les fichiers jndi auxquels il fait référence ne sont pas présents dans les sources du TP.
A l'époque, ils étaient sous JBoss donc je ne sais pas si le fait d'être avec GlassFish change quelque chose à ce niveau ou bien s'il manque réellement le répertoire dans les sources du TP ?

Par avance merci.

Re: [TP11] Avalanche d'erreur avec le ServiceLocator

Publié : 08 janv. 2017 11:11
par graffion
Bonjour,

Plus besoin du fichier jndi.properties (cf texte barré dans l'énoncé du TP11).

Utilisez ant pour déployer et lancer les tests.

Par contre, puisque vous utilisez un JDK1.7, essayez avec glassfish4.1 (au lieu de glassfish4.1.1 qui requiert un JDK 1.8 version > 60 - cf mon post "TP11 : startClient retombé en marche avec glassfish4.1.1!" -).

Re: [TP11] Avalanche d'erreur avec le ServiceLocator

Publié : 08 janv. 2017 12:50
par NicoH
Bonjour,
Merci pour votre retour.

Je ne l'ai pas précisé dans mon post mais je suis déjà en GlassFish 4.1.

J'ai continué d'avancer et je me suis rendu compte que les erreurs que j'avais dans ant n'étaient pas les même que dans Eclipse.

Dans ant, il ne me reste plus que 3 assert qui claquent sur le shopping cart.

Dans eclipse, je suis toujours confronté à l'erreur suivante et du coup, je n'ai aucun test service ou delegate qui passe :

Code : Tout sélectionner

java.rmi.RemoteException: Lookup exception; nested exception is: 
	com.yaps.petstore.common.locator.ServiceLocatorException: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
	at com.yaps.petstore.server.service.CatalogServiceTest.getCatalogService(CatalogServiceTest.java:1085)
	at com.yaps.petstore.server.service.CatalogServiceTest.testServiceFindCategoryWithInvalidValues(CatalogServiceTest.java:41)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: com.yaps.petstore.common.locator.ServiceLocatorException: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
	at com.yaps.petstore.common.locator.ServiceLocator.getHome(ServiceLocator.java:169)
	at com.yaps.petstore.common.locator.ServiceLocator.getHome(ServiceLocator.java:183)
	at com.yaps.petstore.server.service.CatalogServiceTest.getCatalogService(CatalogServiceTest.java:1083)
	... 22 more
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
	at javax.naming.InitialContext.lookup(InitialContext.java:411)
	at com.yaps.petstore.common.locator.ServiceLocator.getHome(ServiceLocator.java:165)
	... 24 more

Je ne comprends pas comment configurer eclipse pour définir le "initialContext".

Par avance, merci pour votre aide.

Bon dimanche.

Nico.

Re: [TP11] Avalanche d'erreur avec le ServiceLocator

Publié : 08 janv. 2017 13:20
par graffion
Essayez d'ajouter %GLASSFISH_HOME%/lib/gf-client.jar et Yaps/build/client.jar au build path d'Eclipse

Re: [TP11] Avalanche d'erreur avec le ServiceLocator

Publié : 08 janv. 2017 14:49
par NicoH
ça fonctionne merci beaucoup pour votre aide.

Bon dimanche.

Nico.