Hola a todos!!
Soy nuevo en este foro, y busco ayuda para un proyecto que tengo entre manos. Espero que alguien pueda ayudarme y resuelva los problemas que me vayan surgiendo. A continuación os explico un poco de qué va el tema.
Estoy intentando hacer una pequeña web con Servlets de Java. Para ello instale Apache Tomcat 6 y Eclipse Galileo (Eclipse + WTP). El primer paso de crear Servlets simples y ejecutarlos en el mismo Eclipse ya lo superé.
Mi intención ahora es que el código HTML se genere dependiendo de un archivo XML de configuración. Y aquí es donde empiezan los problemas. Lo que intento hacer es crear un org.w3c.dom.Document, lo hago con una función que encontré por la red (supongo que funciona). La función es esta:
public static Document File2Document(String fichero) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
ClassLoader loader = (XMLTresnak.class).getClassLoader();
URL urlfichero = loader.getResource(fichero);
Document XMLDoc = factory.newDocumentBuilder().parse(new InputSource(urlfichero.openStream()));
return XMLDoc;
}
La función la tengo dentro de una clase llamada UtilidadesXML, dentro del package eca.utilidades. A esta función la llamo desde el método doGet del Servlet, y parece que algo falla en la línea en negrita lanzando un java.lang.NullPointerException (como si no lo encontrara). La llamada la hago de la siguiente forma:
this.doc = UtilidadesXML.File2Document("conf/config.xml");
Pongo la ruta relativa "conf/config.xml" porque el archivo está dentro de la carpeta conf. Tengo la siguiente estructura de packages en el expolador de proyectos de Eclipse:
eca: aquí vienen los Servets (y un HTML al que no consigo acceder).
eca.conf: aquí tengo el fichero XML de configuración.
eca.utilidades: aquí tengo clases de utilidades, el UtilidadesXML entre otras.
¿Alguien sabe por qué no puedo acceder al archivo XML? ¿Y al HTML? No sé si hay que configurar algo en Tomcat o en al archivo web.xml de la carpeta WEB-INF para que estén accesibles, ¿alguien lo sabe?
Gracias de antemano.