Necesito cargar un archivo de propiedad desde el contenedor. El jar está incluido en el archivo war. Aquí está la estructuraCómo cargar el recurso del archivo jar empaquetado en un archivo war?
ROOT.war
WEB-INF
lib
my.jar
here my.jar has following structure
my.jar
com
test
myservlet.class
WEB-INF
test.property
Ahora he escrito el código siguiente en una de mis servlet de la siguiente manera:
InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/test.properties");
Properties prop = new Properties();
prop.load(stream);
pero por encima de código llegué corriente como nulo. Si pongo el archivo de propiedad en ROOT.war/WEB-INF, funciona bien. Tengo una idea clara de que si la ruta en getResourceAsStream comienza con '/' entonces busca el recurso en la raíz del contexto. Pero, ¿cómo puedo leer el recurso que se encuentra en un contenedor que nuevamente se encuentra en WEB-INF/lib de la aplicación raíz?
, gracias & Saludos, Amit Patel
... o deje las cosas tal como están y use "WEB-INF/test.property". –
@bkail, también puede hacerlo, pero no hay ninguna razón para usar la carpeta 'WEB-INF', ya que el servletcontext nunca podrá acceder a él. Tampoco tiene sentido colocar una convención de carpetas específica de WAR en un archivo JAR simple y plano. – BalusC
De acuerdo, no fue sugerir que su respuesta fue incorrecta. Simplemente le da al OP otra opción en caso de que cambiar la estructura JAR sea difícil o no posible por alguna razón. –