Impossible de lancer mon application cliente hors de NetBeans
Bonjour,
J'ai développé une application cliente j2se et un module EJB.
Lorsque je lance mon application en local depuis netbeans, tout marche bien.
Je déploie mon module EJB sur mon serveur local, et je lance mon client sans problème.
Par contre, quand je lance mon application directement depuis la console, avec la commande java -jar, j'obtiens l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/logging/LogDomains
at com.sun.enterprise.naming.impl.SerialInitContextFactory.<clinit>(Seri
alInitContextFactory.java:87)
at com.sun.enterprise.naming.SerialInitContextFactory.<init>(SerialInitC
ontextFactory.java:62)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at BusinessDelegate.ServiceLocator.<init>(ServiceLocator.java:68)
at BusinessDelegate.ServiceLocator.<clinit>(ServiceLocator.java:36)
at BusinessDelegate.CompteUtilisateurBD.getDAO(CompteUtilisateurBD.java:
71)
at BusinessDelegate.CompteUtilisateurBD.doSomething(CompteUtilisateurBD.
java:80)
at hotlineapplicationclient.Main.main(Main.java:30)
Caused by: java.lang.ClassNotFoundException: com.sun.logging.LogDomains
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more |
J'utilise Netbeans 7, avec un serveur Glassfish 3.1.
Les librairies de mon application sont, entre autres:
- le jar de mon module EJB
- gf-client.jar
- javax.ejb.jar
- appserv-rt.jar
- appclient.jar
Je ne sais plus quoi faire, je pense que ce doit être un problème de librairies ou de classpath, mais je n'ai pas réussi à trouver ce qui ne va pas.
Quelqu'un peut-il m'expliquer comment rendre mon application "executable" hors de netbeans?
Merci.
2 versions de appserv-rt.jar
Alors,
j'ai remarqué qu'il y avait 2 appserv-rt.jar:
celui présent dans le répertoire lib de glassfish, qui fait 3Ko
et un autre que j'ai récupéré d'un ancien programme qui fait 15,7Mo.
(après avoir lu sur quelques forums que celà pourrait résoudre mon problème).
L'erreur ci-dessus, se produisait avec la version appserv-rt.jar de 15Mo.
Quand j'utilise la version présente dans le repertoire lib de glassfish (3Ko), j'obtiens l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 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:6
45)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288
)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav
a:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at BusinessDelegate.ServiceLocator.lookup(ServiceLocator.java:89)
at BusinessDelegate.ServiceLocator.getEJB(ServiceLocator.java:101)
at BusinessDelegate.CompteUtilisateurBD.getDAO(CompteUtilisateurBD.java:
71)
at BusinessDelegate.CompteUtilisateurBD.doSomething(CompteUtilisateurBD.
java:80)
at hotlineapplicationclient.Main.main(Main.java:30)
Exception in thread "main" java.lang.NullPointerException
at BusinessDelegate.CompteUtilisateurBD.doSomething(CompteUtilisateurBD.
java:80)
at hotlineapplicationclient.Main.main(Main.java:30) |
Je précise que j'obtiens la même erreur en définissant directement les properties de mon InitialContext ou en utilisant le constructeur sans arguments
Code:
ic = new InitialContext();
Savez-vous quelle version de appserv-rt.jar je dois utiliser?
Quand je compile mon client, Netbeans me dit que pour lancer cette application sans utiliser Ant, il faut executer la commande:
java -jar "chemin vers mon jar" hors c'est ce que je fais :(
Sinon, peut-être savez vous ou trouver la commande utilisée par Netbeans quand je fais un run de mon application?
Merci.