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: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to