2011-11-25 18 views
5

antes de preguntar, por favor, comprenda que mi inglés no es bueno.¿Es posible hacer que Class.forName ("") sea flexible?

Estoy usando la clase Class.forName(...) en una programación servlet. Cuando accedo al servlet, obtengo una fila de información detallada del controlador de la base de datos que indica qué controlador usar.

Ésta es Class.forName(...) codifiqué:

Class c = Class.forName(row.getControllerInfo); 
c.newInstance(); 

Esto funciona bien, pero hay un problema, yo estoy usando Eclipse. El problema es que cuando modifiqué el archivo del Controlador, los contenidos modificados no se aplicaron al servidor. ,,.

+0

Algunos ejemplos de código de su proyecto pueden ayudarnos a ver el problema –

+0

Solo para asegurarse de que: no almacena en caché las instancias creadas con 'newInstance()', entonces en cada solicitud llama a 'newInstance()'? – home

+0

Uso IntelliJ y cuando cambio el nombre o muevo una clase, me da la opción de cambiarle el nombre en cadenas y texto/xml/archivos de propiedades. Tal vez haya una opción similar en eclipse. –

Respuesta

0

Si entendí su problema como verdadero, Cuando cambia cualquier archivo de su proyecto, debe implementar su proyecto en el servidor. Si usa el servidor de eclipse, republicar puede resolver su problema.

+0

sí, despliego todos los archivos modificados pero el problema es que ocurre solo si uso Class.forName(); – user1065108

0

¿ha intentado limpiar, volver a construir y luego implementar su aplicación?

2

Probablemente la forma más fácil es no admitir la carga dinámica. Mucho mejor para lograr algo así como la actualización dinámica al admitir múltiples servidores. Para el desarrollo, puede evitar retrasos en la redistribución mediante el uso de JRebel (puede haber otros).

Si realmente quieres carga dinámica de clases, la respuesta es "cargadores de clases". Sugiero echarles un vistazo y volver con cualquier pregunta específica.

+0

wow ... eres genio thx .... BUEN DÍA – user1065108

+0

Encontré otro programa útil que ayuda a "cargar la clase en tiempo de ejecución", visita aquí para ver más información http://ssw.jku.at/dcevm/ – user1065108

Cuestiones relacionadas