[Gvsig_desarrolladores] Fwd: JNDI + GvSIG + EJB

Cristian Rinaldi csrinaldi en gmail.com
Lun Sep 24 19:09:25 CEST 2007


Francisco:
   He solucionado el problema, les cuento a todos lo que hice.
   En primera instancia, coloqué los siguiente jars en la carpeta lib de
gvSIG:
   appserv-rt.jar
   javaee.jar
   appserv-ext.jar
   appserv-deployment-client.jar

   Y en mi plugin myPlugin.jar tenía la interfaz remota a la cual quería
acceder, pero en tiempo de ejecución no podía acceder a la interfaz remota,
me tiraba una excepción de ClassNotFound.
   Lo que hice fue agarrar la interfaz remota junta con otras clases
aledañas que cumplian con su funcionamiento y hacer una librería a la cual
empaqueté en un jar, remoteService.jar. A este también lo copie en la
carpeta lib de gvSig.

   Luego cargué todos estos jars en el CLASSPATH cuando gvSIG inicia y desde
mi plugin, pude acceder vía JNDI al servidor GlassFish y traerme un
SessionBean remoto.

Muchas gracias, por las respuestas espero que esto le sirva a alguién. Pero
desde mi punto de vista el sistema de Plugins de gvSIG es poco flexible y no
se terminan de comprender donde se cargan las cosas en tiempo de ejecución.

Saludos Cristian

El día 21/09/07, Francisco José Peñarrubia <fpenarru en gmail.com> escribió:
>
> Hola Cristian.
>
> Sí, Andami lleva un control de las clases duplicadas. Lo hace para
> gestionar las dependencias de unos plugin con otros. En esa parte está
> el código donde deberías poner un punto de ruptura, para ver porqué el
> classLoader no está encontrando tu clase.
>
> Mira la clase com.iver.andami.plugin.PluginClassLoader, a ver si puedes
> averigüar algo:
>
> /**
> * <p>Class loader which loads the classes requested by the
> * plugins. It first tries to search in the classpath, then it requests
> * the class to the parent classloader, then it searches in the owns
> * plugins' library dir, and if all these methods fail, it tries to load
> * the class from any of the depended plugins. Finally, if this also
> * fails, the other classloaders provided in the <code>addLoaders</code>
> method
> * are requested to load the class.</p>
> *
> * <p>The class loader can also be used to load resources from the
> * plugin's directory by using the <code>getResource()</code> method.</p>
> *
> * @author Fernando González Cortés
> */
> public class PluginClassLoader extends URLClassLoader {
>
> Suerte, porque este tema no es sencillo.
>
> Fran.
>
>
> Cristian Rinaldi escribió:
> > Hola:
> >    ya coloqué los jars en la carpeta lib de gvSIg y cuando levanta
> > gvSIG hice que los cargue en el CLASSPTH y tampoco anda.
> >    Una consulta el control de clases duplicadas en los jars lo hacen
> > ustedes en gvSIG, porque por lo que tengo entendido uno puede adherir
> > en el CLASPTAH cosas repetidas si problemas. Esto es porque tengo 2
> > jars que son necesarios para hacer lo que estoy haciendo y tienen una
> > clase que es la misma y no me deja cargarlos a los dos.
> >
> > El día 21/09/07, *Francisco José Peñarrubia* <fpenarru en gmail.com
> > <mailto:fpenarru en gmail.com>> escribió:
> >
> >     Hola Cristian.
> >
> >     No lo sé con seguridad, tendría que depurar paso a paso. Pero da la
> >     sensación de que sí es un problema de encontrar esas clases. Yo
> >     pensaba
> >     que eso ya estaba solucionado, pero por si acaso, puedes probar a
> >     poner
> >     los .jar que necesites dentro del lib de gvSIG además de dentro
> >     del lib
> >     de tu extensión.
> >
> >     Si así no funciona, tendrás que debuggear paso a paso a ver dónde
> >     falla.
> >
> >     Saludos
> >
> >     Cristian Rinaldi escribió:
> >     >
> >     >
> >     > ---------- Forwarded message ----------
> >     > From: *Cristian Rinaldi* <csrinaldi en gmail.com
> >     <mailto:csrinaldi en gmail.com>
> >     > <mailto:csrinaldi en gmail.com <mailto:csrinaldi en gmail.com>>>
> >     > Date: 21-sep-2007 11:05
> >     > Subject: JNDI + GvSIG + EJB
> >     > To: Cristian Rinaldi <csrinaldi en gmail.com
> >     <mailto:csrinaldi en gmail.com> <mailto: csrinaldi en gmail.com
> >     <mailto:csrinaldi en gmail.com>>>
> >     >
> >     > Gente:
> >     >     Bueno hoy vengo con algo raro, tenemos en el grupo de
> desarrollo
> >     > el siguiente gran inconveniente.
> >     >     Tenemos un servidor corriendo sobre un GlassFish V2, y
> >     trabajamos
> >     > con EJB3. En el servidor existen unos SessionBean que me brindan
> un
> >     > servicio de loggin.
> >     >     Desde GvSIG utilizamos JNDI para conectarnos al servidor y
> >     obtener
> >     > el SessionBean.
> >     >     Aqui les dejo el codigo del Cliente gvSIG que realiza la
> >     coneccion:
> >     >
> >     >         Context contetx = new InitialContext();
> >     >         LoginService login =
> >     > (LoginService)contetx.lookup(LoginService.class.getName());
> >     >         List<Service> servicesUser = login.login(user, passwd);
> >     >         Iterator<Service> it = servicesUser.iterator ();
> >     >         while( it.hasNext() ){
> >     >                Service s = it.next();
> >     >                System.out.println ( s.getName() );
> >     >                System.out.println( s.getServiceType() );
> >     >         }
> >     >
> >     >      Bueno eso segun la "teoría" anda en código. Ahora hay que
> >     agregar
> >     > los jars correspondientes en el CLASSPATH, es decir en lugar donde
> >     > definamos las librerías de nuestro plugin. Los jars son javaee.jary
> >     > appserv-rt.jar. En este último jar se encuentra un archivo que se
> >     > llama jndi.properties que inicializa una de las propiedades que
> >     es el
> >     > InitialContex.
> >     >      Luego si estas en una maquina remota, es decir una diferente
> a
> >     > donde corre el servidor, es necesario arrancar la aplicación con
> los
> >     > siguientes parámetros:
> >     >      - Dorg.omg.CORBA.ORBInitialPort=32840
> >     >      -Dorg.omg.CORBA.ORBInitialHost=10.1.30.2
> >     >      Bueno lo probamos en una aplicacion Demo que hicimos y anda
> de
> >     > maravillas, el problema es que con gvSIG no anda, la excepcion que
> >     > tira es la siguiente:
> >     >
> >     >     javax.naming.NameNotFoundException [Root exception is
> >     > org.omg.CosNaming.NamingContextPackage.NotFound: IDL:
> >     > omg.org/CosNaming/NamingContext/NotFound:1.0
> >     <http://omg.org/CosNaming/NamingContext/NotFound:1.0>
> >     > <http://omg.org/CosNaming/NamingContext/NotFound:1.0>]
> >     >         at
> >     > com.sun.jndi.cosnaming.ExceptionMapper.mapException
> >     (ExceptionMapper.java:44)
> >     >         at com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java
> :453)
> >     >         at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java :492)
> >     >         at com.sun.jndi.cosnaming.CNCtx.lookup (CNCtx.java:470)
> >     .....
> >     >         .....
> >     > Caused by: org.omg.CosNaming.NamingContextPackage.NotFound: IDL:
> >     > omg.org/CosNaming/NamingContext/NotFound:1.0
> >     <http://omg.org/CosNaming/NamingContext/NotFound:1.0>
> >     > <http://omg.org/CosNaming/NamingContext/NotFound:1.0>
> >     >         at
> >     > org.omg.CosNaming.NamingContextPackage.NotFoundHelper.read
> >     (NotFoundHelper.java:72)
> >     >         at
> >     >
> >     org.omg.CosNaming._NamingContextExtStub.resolve
> (_NamingContextExtStub.java:406)
> >     >
> >     >         at com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java
> :440)
> >     >         ... 73 more
> >     >
> >     >       No sabemos si esto se debe a que no encuentra los jars o
> >     que. En
> >     > realidad desconocemos completamente el error porque en nuestra
> >     > aplicación demo funciona a la perfección como dice el tutorial de
> >     > GlassFish. Así que el problema es algo en la carga de gvSIG.
> >     >
> >     > Por favor si alguien puede asesorarnos es necesario que hagamos
> >     andar
> >     > esto. Muchas gracias.
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     >
> >     > --
> >     > www.juglar.org <http://www.juglar.org> <http://www.juglar.org>
> >     > "El Java User Group del Litoral Argentino"
> >     >
> >     > @Saludos( mappedBy="GNR" )
> >     > public String saludo(){
> >     >   return new String( "Chinese Democracy" );
> >     > }
> >     >
> >     > --
> >     > www.juglar.org <http://www.juglar.org> <http://www.juglar.org>
> >     > "El Java User Group del Litoral Argentino"
> >     >
> >     > @Saludos( mappedBy="GNR" )
> >     > public String saludo(){
> >     >   return new String( "Chinese Democracy" );
> >     > }
> >     >
> >
> ------------------------------------------------------------------------
> >     >
> >     > _______________________________________________
> >     > gvSIG_desarrolladores mailing list
> >     > gvSIG_desarrolladores en runas.cap.gva.es
> >     <mailto:gvSIG_desarrolladores en runas.cap.gva.es>
> >     > http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >     >
> >     _______________________________________________
> >     gvSIG_desarrolladores mailing list
> >     gvSIG_desarrolladores en runas.cap.gva.es
> >     <mailto:gvSIG_desarrolladores en runas.cap.gva.es>
> >     http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >     <http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores>
> >
> >
> >
> >
> > --
> > www.juglar.org <http://www.juglar.org>
> > "El Java User Group del Litoral Argentino"
> >
> > @Saludos( mappedBy="GNR" )
> > public String saludo(){
> >   return new String( "Chinese Democracy" );
> > }
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores en runas.cap.gva.es
> > http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>



-- 
www.juglar.org
"El Java User Group del Litoral Argentino"

@Saludos( mappedBy="GNR" )
public String saludo(){
  return new String( "Chinese Democracy" );
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20070924/d7fbaf57/attachment-0001.htm


Más información sobre la lista de distribución gvSIG_desarrolladores