JAVA Ayuda con aplicacion cliente de que utliza en ejb en un servidor remoto en netbeans

alex02

Lanero Reconocido
10 Jun 2006
178
Saludos

Estoy intentando aprender J2EE con netbeans 6.9 y glassfish 3 hice una aplicación en swing que utiliza un ejb que esta en un servidor remoto cuando lo ejecuto desde netbeans el programa me funciona bien pero cuando lo intento ejecutar desde afuera de netbeans con el comando "java -jar miaplicacion.jar" me sale el siguiente error:

javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.impl.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
at javax.naming.InitialContext.init(InitialContext.java:240)
at javax.naming.InitialContext.<init>(InitialContext.java:214)
at pruebaejbr.Main.main(Main.java:34)
Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:63)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671)
... 4 more
Exception in thread "main" java.lang.NullPointerException
at pruebaejbr.Main.main(Main.java:39)


es raro por que solo funciona desde netbeans y no fuera de el???

le agredeceria que me ayudaran con esto por favor.
 

wac666

Lanero Reconocido
13 Feb 2008
517
Son librerias, tienes que ponerle classpath con la ubicacion de las librerias.

En el caso del error te esta pidiendo com.sun.enterprise.naming.impl.SerialInitContextFactory

Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory


Saludos
 

alex02

Lanero Reconocido
10 Jun 2006
178
Ya agregue las librerías que tenia que agregar pero igual sigue apareciendo el error he seguido infinidad de manuales pero todos con el mismo resultado, por que solo funciona en netbeans???
 

wac666

Lanero Reconocido
13 Feb 2008
517
Con que comando agragaste las librerias????


Muestrame el comando que estas ejecutanto.

Si sigues ejecutando "java -jar miaplicacion.jar"

Ese es el problema, le faltan parametros, que agregen librerias.

Verifica bien. Saludos
 

alex02

Lanero Reconocido
10 Jun 2006
178
Las agrego directamente en el netbeans aunque creo que encontre el problema estoy haciendo unas pruebas y si lo encuentro lo publico
 

wac666

Lanero Reconocido
13 Feb 2008
517
no. eso no es.

Tienes que ejecutar con el parametro cp o classpath, revisa en un libro. La idea es ponerle la ruta de las librerias.

Seria algo como:

java -cp /librerias/jar1.jar:/librerias/jar2.jar -jar miaplicacion


Revisa bien la sintaxis del comando.

Saludos
Las agrego directamente en el netbeans aunque creo que encontre el problema estoy haciendo unas pruebas y si lo encuentro lo publico
 

alex02

Lanero Reconocido
10 Jun 2006
178
Es que cuando agregas las librerías en el proyecto de netbeans el las incluye en el MANIFEST.MF ahorrándome tener que colocar las librerías en el comando ya me funciona pero tuve que agregar todas las librerías del glassfish ahora estoy sacando las librerías que no se necesitan pero son muchas.
 

alex02

Lanero Reconocido
10 Jun 2006
178
Listo parece que lo logre, el problema esta que en casi todos los tutoriales que he encontrado en internet dicen que se deben agregar 2 o 3 librerías pero eso no es así, aquí les paso la lista completa de librerías que deben agregar al proyecto para que les funcione la aplicación fuera de netbeans, todas las librerías están en el directorio modules dentro del directorio de glassfish:

../glassfish-3.0.1/glassfish/modules/container-common.jar
../glassfish-3.0.1/glassfish/modules/auto-depends.jar
../glassfish-3.0.1/glassfish/modules/common-util.jar
../glassfish-3.0.1/glassfish/modules/config-types.jar
../glassfish-3.0.1/glassfish/modules/config.jar
../glassfish-3.0.1/glassfish/modules/config-api.jar
../glassfish-3.0.1/glassfish/modules/connectors-internal-api.jar
../glassfish-3.0.1/glassfish/modules/deployment-common.jar
../glassfish-3.0.1/glassfish/modules/dol.jar
../glassfish-3.0.1/glassfish/modules/ejb.security.jar
../glassfish-3.0.1/glassfish/modules/ejb-container.jar
../glassfish-3.0.1/glassfish/modules/ejb-internal-api.jar
../glassfish-3.0.1/glassfish/modules/gf-client.jar
../glassfish-3.0.1/glassfish/modules/glassfish-api.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-codegen.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-csiv2-idl.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-newtimer.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-omgapi.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-orb.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-orbgeneric.jar
../glassfish-3.0.1/glassfish/modules/glassfish-corba-asm.jar
../glassfish-3.0.1/glassfish/modules/glassfish-naming.jar
../glassfish-3.0.1/glassfish/modules/gmbal.jar
../glassfish-3.0.1/glassfish/modules/hk2-core.jar
../glassfish-3.0.1/glassfish/modules/hk2.jar
../glassfish-3.0.1/glassfish/modules/internal-api.jar
../glassfish-3.0.1/glassfish/modules/javax.transaction.jar
../glassfish-3.0.1/glassfish/modules/javax.resource.jar
../glassfish-3.0.1/glassfish/modules/javax.servlet.jar
../glassfish-3.0.1/glassfish/modules/javax.ejb.jar
../glassfish-3.0.1/glassfish/modules/jta.jar
../glassfish-3.0.1/glassfish/modules/kernel-l10n.jar
../glassfish-3.0.1/glassfish/modules/kernel.jar
../glassfish-3.0.1/glassfish/modules/mimepull.jar
../glassfish-3.0.1/glassfish/modules/management-api.jar
../glassfish-3.0.1/glassfish/modules/orb-iiop.jar
../glassfish-3.0.1/glassfish/modules/orb-connector.jar
../glassfish-3.0.1/glassfish/modules/orb-enabler.jar
../glassfish-3.0.1/glassfish/modules/security.jar
../glassfish/modules/tiger-types-osgi.jar
../glassfish/modules/transaction-internal-api.jar

después de agregar estas librerias y generar el archivo jar ya lo podemos ejecutar con el comando java -jar miaplicacion.jar y listo.
 

Jack Krauser

Lanero Regular
2 Feb 2012
1
Hola, alex02 o quien pueda ayudarme, como hiciste para determinar cuales son los JNDI que deben estar en la aplicacion cliente???? solo eso me falta, estoy en la misma situacion que tu, mi programa ya funciona correctamente en glassfish v2.1 y ahora quiero migrar a glassfish 3, pero ese es el unico problema que tengo (JNDI)... Por favot, ayudame con eso.... Gracias