Java - Sobre URLClassLoader en tomcat

 
Vista:

Sobre URLClassLoader en tomcat

Publicado por alvaro mouat (15 intervenciones) el 28/09/2004 17:38:25
Hola.
Tengo el siguiente problema:
En NetBeans debugeo una aplicacion que carga dinamicamente una clase de tipo MyClase con un URLClassLoader para asignar una instancia a una variable de tipo MyClase del siguiente modo:

java.security.ProtectionDomain pd = this.getClass().getProtectionDomain();
java.security.CodeSource cs = pd.getCodeSource();
URL loc = cs.getLocation();

ClassLoader cLoader = URLClassLoader.newInstance( new URL[] { loc } );

MyClase mc = (MyClase)cLoader.loadClass(MyClase.class.getName()).newInstance();

Esto lo hago con el fin de poder modificar la clase sin tener que detener la ejecucion del programa.

En tiempo de debug esta todo bien, pero al pasar las clases a su ruta definitiva en tomcat (Es una aplicacion Web) me da una excepcion del tipo

java.lang.ClassCastException.

en la linea

MyClase mc = (MyClase)cLoader.loadClass(MyClase.class.getName()).newInstance();

he probado distintos panoramas como modificar la linea y poner

Object obj = cLoader.loadClass(MyClase.class.getName()).newInstance();
MyClase mc = (MyClase)obj;
y el error ahora se da en esta linea, repito, solo en tomcat.
En el debug del NetBeans no tengo ningun problema.

Cualquier ayuda o comentario al respecto, gracias...
Suerte.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Sobre URLClassLoader en tomcat

Publicado por Yamil Bracho (2315 intervenciones) el 28/09/2004 19:04:40
Creo que es problema con tu classpath...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre URLClassLoader en tomcat

Publicado por Oscar (661 intervenciones) el 28/09/2004 23:04:00
Revisa que en tu classpath no tengas diferentes versiones de MyClase.class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre URLClassLoader en tomcat

Publicado por Alvaro Mouat (15 intervenciones) el 30/09/2004 22:29:41
Al parecer tiene razon, pero, como puedo solucionar este problema???

Al momento de ejecutar este programa puse que me listara las propiedades del sistema ( System.getProperties() )
En modo debug me entrega un classpath que incluye la ruta para llegar a mis classes, pero cuando paso el programa al tomcat y lo ejecuto solo me retorna en el classpath la ruta en la que se encuentran los .jar del tomcat, por ejemplo:
java.class.path = C:\SERVER\Tomcat_4_1_30\bin\bootstrap.jar
¿ Como puedo cambiar la configuracion del tomcat para que incluya otra ruta mas en el classpath ?
Gracias....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sobre URLClassLoader en tomcat

Publicado por Alvaro Mouat (15 intervenciones) el 01/10/2004 01:17:11
Ya lo tengo.
Gracias a los que respondieron...
El problema esta relacionado con el classpath pero, hay una forma de saltarse la configuracion del classpath y es instanciar el nuevo classloader con el de la clase actual como padre.
El codigo es:
ClassLoader cl = URLClassLoader.newInstance( new URL[] { urls }, this.getClass().getClassLoader() );
Para quien se interece...
Suerte...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar