Buenas,
estoy intentado cargar el fichero struts.xml desde otro path que no sea el que viene definido por defecto y se me produce el siguiente comportamiento:
La primera vez que arranco la aplicación en tomcat no me encuentra las url mapeadas del fichero de struts pero si hago un cambio en el fichero web.xml y se recarga la aplicación (no la paro y arranco yo) , sí que las encuentra. Hay algo que se me escapa y no sé que es. ¿Alguien puede echarme una mano?
La configuración que tengo es la siguiente:
1. En el web.xml le paso al servlet la ruta del directorio del fichero de struts:
<servlet>
<servlet-name>Inicializar</servlet-name>
<servlet-class>es.rakilinda.inicializar.Init</servlet-class>
<init-param>
<param-name>struts_config_dir</param-name>
<param-value>WEB-INF/config/struts</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
2. El servlet carga en el classpath el directorio:
private static final Class parameters[];
static
{
parameters = (new Class[] {java.net.URL.class});
}
Metodo:
----------
String prefix = getServletContext().getRealPath("/");
String struts_config_dir = getInitParameter("struts_config_dir");
URL url = new File(prefix+struts_config_dir).toURL();
URLClassLoader urlclassloader = (URLClassLoader)ClassLoader.getSystemClassLoader() ;
Class class1 = java.net.URLClassLoader.class;
try
{
Method method = class1.getDeclaredMethod("addURL", parameters);
method.setAccessible(true);
method.invoke(urlclassloader, new Object[] {
url
});
}
catch(Throwable throwable)
{
throw new IOException("Error.");
}
Muchas gracias.