Hi,
If you've been following my previous posts, you'll notice that I had a
problem of trying to load a properties file (stored under WEB-INF),
until I edited my build script and made it place the log4j.properties
file under WEB-INF/classes, and then used the following code to load
in the properties file:
public class Log4jInitServlet extends HttpServlet {
public void init() throws ServletException {
Properties props = new Properties();
try {
props.load(this.getClass().getClassLoader().getResourceAsStream("/log4j.properties"));
} catch (IOException e) {
e.printStackTrace();
}
}
Although, this works for loading property files into my webapp's
CLASSPATH, my new question (just for those who think that I am trying
to post the same question twice, which I am not), is this:
I also have a servlet which uses init params to load & parse XML
config files (which are located under: %TOMCAT_HOME%/mywebapp/WEB-INF/
)
My new question is:
How do I use the getResourceAsStream() method to load this particular
XML file which is not located under WEB-INF/classes? Its located under
just WEB-INF.
Also is there a way to convert this InputStream into a File?
Here's my original piece of code (which works when
undeployWars="true", I am trying to get it to work when
undeployWars="false"):
public class XmlConfigInitServlet extends HttpServlet {
public void init() throws ServletException {
// String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("xml-config-file");
File xmlConfigFile = new File(prefix + file);
if (!xmlConfigFile.exists()) {
System.out.println("attributes-config.xml not found, "
+ xmlConfigFile.getAbsolutePath());
}
try {
// Configure Digester from XML ruleset
AttributeBeanXmlConfigHelper.parse(xmlConfigFile);
Logger.getLogger(this.getClass()).warn("Finished
parsing the
config file.");
is.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
What I thought I could do was something like this inside the try / catch:
InputStream is =
getServletContext().getResourceAsStream("WEB-INF/attributes-config.xml");
// Configure Digester from XML ruleset
AttributeBeanXmlConfigHelper.parse(xmlConfigFile);
Now, the problem is... I think that there will be definitely be a
pathing issue for WEB-INF/attributes-config.xml when using
getResourceAsStream() (I am guessing because of my attempts with the
Log4jInitServlet postings). Also, how would one convert an InputStream
to a File?
e.g
How to convert "is" and "xmlConfigFile"?
Cheers,
JD
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]