# [J2EE/EJB/JBOSS] IPv6 empeche le bon fonctionnement de JBoss?



## linett (29 Janvier 2006)

Bonjour à tous!

Lors du démarrage du serveur JBOSS, j'ai le warning suivant :
_ 21:09:14,029 WARN  [HANamingService] Failed to start AutomaticDiscovery 
  java.net.SocketException: bad argument for IP_MULTICAST_IF: address not bound to any interface_

Ce warning est du au fait que Tiger utilise par défaut IPv6.
Est ce que ce warning peut empecher le bon fonctionnement de JBOSS? Car quand je teste un EJB, j'ai cette erreur là :
_javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory] 
     at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) 
     at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247) 
     at javax.naming.InitialContext.init(InitialContext.java:223) 
     at javax.naming.InitialContext.<init>(InitialContext.java:197) 
     ..._

J'ai déjà essayé de désactivé l'IPv6 sur Darwin (ip6 -x) et ca n'a pas changé grand chose. Et j'ai essayé de le réactivé mais je ne le peux plus :
_$ ip6 -a
ip6: error attaching en0
 ip6: error attaching en1
 ip6: error attaching fw0_
Donc est ce que je suis revenue par défaut sur IPv4 ??

Merci d'avance!!!


----------



## GrandGibus (29 Janvier 2006)

Bonsoir,

il faut rajouter _-Djava.net.preferIPv4Stack=true_ au lancement de JBoss ... et tout roulera comme sur des roulettes....


gg


----------



## linett (29 Janvier 2006)

Merci beaucoup!!!!

J'ai trouvé aussi une autre solution qui est de préciser le host :
./run.sh --host=localhost

Sinon, ca résout pas mon bug pour le test ...
Au moins, je sais que c pas dû à l'IPv4/IPv6 !!!

A+


----------



## GrandGibus (29 Janvier 2006)

Pour le coup, je ne suis pas sûr que --host résolve le soucis de protocole IP multicast. 
La liste des paramètres de JBoss ICI.


Peut-être que l'on pourrait t'aider à diagnostiquer ton soucis :rose:: quel est-il, quelle est la trace dans la console ?


----------



## linett (29 Janvier 2006)

C très gentil de proposer ton aide 

En fait je suis débutante en J2EE (enfin tu as du le comprendre tout de suite).
Et j'ai écrit un simple test unitaire (de plus il a été généré par Eclipse avec le plugin JBossIDE).

Au lancement du test, j'ai ce message :

_javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    at javax.naming.InitialContext.init(InitialContext.java:223)
    at javax.naming.InitialContext.<init>(InitialContext.java:197)
    at test.CompteFacadeTest.getInitialContext(CompteFacadeTest.java:47)
    at test.CompteFacadeTest.getHome(CompteFacadeTest.java:55)
    at test.CompteFacadeTest.setUp(CompteFacadeTest.java:65)
    at junit.framework.TestCase.runBare(TestCase.java:125)
    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 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:436)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:311)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
    ... 16 more_

J'utilise par défaut le JUnit inclus dans les plugins JBossIDE.
Et sinon mon projet s'organise comme ca :
- src (source pour le serveur : ejb, servlet)
- srcClient (source pour le client de test)
- classes (tous les .class dedans)
Et mon .jar déployé contient tous les .class (serveur + client)

Voilà
Merci d'avance de ton aide


----------



## GrandGibus (29 Janvier 2006)

> javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]



L'exception est déclanchée à l'instantiation du contexte (d'où le _NoInitialContextException_) et à cause de (_Root Exception..._): ClassNotFoundException de NamingContextFactory.

Donc, à l'instantiation de l'initial context, la JVM ne trouve pas la classe _NamingContextFactory_.


Essaie de rajouter l'archive _jbossall-client.jar_ qui se trouve dans JBOSS_HOME/client/ dans le classpath à l'exécution du test unitaire.


----------



## linett (29 Janvier 2006)

J'avais déjà inclus _jbossall-client.jar _et_ jnp-client.jar.
_J'ai meme essayé d'inclure ces jar dans le jar que je déploie sur JBoss ...
Mais vraiment rien à faire, je comprends pplus rien!!!


----------



## linett (29 Janvier 2006)

Mea culpa!!!!

Tu as bien raison : je les ai inclus dans mon jar déployé et c'est passé!!!
Le pb c que j'ai une autre exception!!! lol

Merci!!!!!!


----------



## GrandGibus (30 Janvier 2006)

Si tu n'arrives pas à diagnostiquer ton exception... tu peux toujours poster la trace .


----------

