Foros del Web » Programación para mayores de 30 ;) » Java »

Nueva instancia de beans fuera del classpath

Estas en el tema de Nueva instancia de beans fuera del classpath en el foro de Java en Foros del Web. Buenas, Tengo la siguiente linea de codigo que coje un archivo XML con definiciones de BEANs. Server serv = Server.newInstance("server.comp"); El archivo server.comp esta en ...
  #1 (permalink)  
Antiguo 04/12/2013, 01:53
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Nueva instancia de beans fuera del classpath

Buenas,

Tengo la siguiente linea de codigo que coje un archivo XML con definiciones de BEANs.

Server serv = Server.newInstance("server.comp");

El archivo server.comp esta en el ClassPath y me gustaria poderlo tener fuera de la aplicacion, para que cuando exporte el jar no se quede dentro y pueda modificarlo con mas facilidad.


Es posible? Como podria hacerlo?

Los constructores de Server.newInstance son:

newInstance();
newInstance(String composite);
newInstance(String domainURI, String contributionLocation, String... composites);


Muchas gracias!
Un saludo!
  #2 (permalink)  
Antiguo 04/12/2013, 11:49
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Nueva instancia de beans fuera del classpath

Hola,

Podrías dejar el archivo .class fuera del .jar; y al ejecutar la aplicación agregar ese archivo al classpath. Por ejemplo:

Código:
java -cp .:archivo.jar -jar archivo.jar
Código:
java -cp .;archivo.jar -jar archivo.jar
Si el archivo .class (en su package correcto) está dentro del mismo árbol de carpetas donde está el archivo.jar, el classloader lo tendrá que encontrar.

Pero .. ¿no será un problema de diseño?

Porque no pasas una variable al método:

Código:
Server serv = Server.newInstance(nombreclase);
Y parametrizas con un archivo .properties el nombre de la clase.

Saludos,

Etiquetas: beans, fuera, instancia, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:12.