eclipse glassfish 3 , erreur du client
Je suis en utilisant la dernière Eclipse pour développer des EJB 3 sous Glassfish 3. J'ai créer une nouvelle instance de serveur Glassfish dans l'Eclipse, écrire une simple EJB, déployé et a réussi.
Maintenant, j'écris un client, mais il me donne toujours de l'erreur comme ceci
java.lang.RuntimeException: Orb initialization erorr
at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:148)
at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:365)
at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:372)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:402)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.client.Test.main(Test.java:22)
Caused by: java.lang.NullPointerException
at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:120)
... 8 more
Exception in thread "main" javax.naming.NamingException: Lookup failed for 'helloRemote' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.lang.RuntimeException: Orb initialization erorr]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.client.Test.main(Test.java:22)
Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.lang.RuntimeException: Orb initialization erorr]
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:352)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)
... 3 more
Caused by: java.lang.RuntimeException: Orb initialization erorr
at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:148)
at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:365)
at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:372)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:402)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)
... 4 more
Caused by: java.lang.NullPointerException
at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:120)
... 8 more
le code du client est ce
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
InitialContext ic = new InitialContext(props);
HelloRemote remote = (HelloRemote) ic.lookup("helloRemote");
System.out.println(remote.echo("john"));
Savez-vous pourquoi ? est-il "com.soleil.de l'entreprise.de nommage.SerialInitContextFactory" pas dans le classpath ?
Le code source est ici
http://www.mediafire.com/file/278rc1tpip0rjku/EJBApp2.rar
J'apprécie votre aide.
Quelqu'un d'autre a eu ce qui pourrait facilement être le même problème forums.java.net/node/794493 ils ont eu de travail
ne fonctionne pas pour mon cas. même erreur
Voir l'Étape 3 de la EJB FAQ: Vous devez
ne fonctionne pas pour mon cas. même erreur
Voir l'Étape 3 de la EJB FAQ: Vous devez
gf-client.jar
dans votre CLASSPATH
.
OriginalL'auteur user595234 | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
Pour résoudre ce problème, vous avez juste besoin d'ajouter des jar "appserv-rt.jar" dans le buildpath du client.
Vous pouvez le trouver dans le dossier ...\glassfishv3\glassfish\lib
Ou créer un package avec ce pot et toutes ses dépendances à l'ajouter dans le BP
C'est mon code
Sans le fichier jar, j'ai eu la même erreur et j'obtiens un "Bonjour" dans la console.
C'est la clé! Merci!!!!
OriginalL'auteur Nico Baps
À en juger par les propriétés que vous définissez ce doit être un client autonome.
Assurez-vous d'inclure les gf-client.jar pour votre classpath pour que cela fonctionne. (glassfish\lib\gf-client.jar)
Vous aussi n'avez pas besoin de définir les propriétés que vous avez définies. Pour spécifier un non-localhost emplacement de votre serveur ou d'un port alternatif, cependant, vous pouvez définir:
Vous pouvez également aller sur "Comment puis-je accéder à une Distance composant EJB à partir d'un client java?":
http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB
OriginalL'auteur Snelders
Me semble que vous essayez d'établir une connexion à partir d'une application qui n'est pas déployé sur votre serveur qui gère le connnectionpool
OriginalL'auteur Fosters
J'ai eu la même erreur:
qui a été causé par
Ma solution était d'ajouter un bocal qui contient GlassFishORBFactoryImpl.class qui met en œuvre la GlassFishORBHelper interface.
OriginalL'auteur nirgal