props file can be placed in src package and then placed along with classes in the Web-INF directory when compiling with the destination flag .This method has been used since jdk 1 for internationalization and is understood by new and old devs. On a side not perhaps someone can help me with a related question regarding how we intwenationalize images? or a link:P

--------------------------------------------------
From: "Harry Metske" <harry.met...@gmail.com>
Sent: Sunday, April 18, 2010 7:32 PM
To: "Tomcat Users List" <users@tomcat.apache.org>
Subject: Re: loading properties file from WEB-INF instead of WEB-INF/classes

2010/4/17 Thufir <hawat.thu...@gmail.com>

getPropsFromWebINF works so long as the properties file is within the
package of
the class (/. However, I'd like to put the properties file under WEB-INF:



   public void getPropsFromWebINF() throws IOException {
       Properties p = new Properties();
       InputStream is;
       is = getClass().getResourceAsStream("sqljdbc4.properties");
       p.load(is);
       log(p.toString());
   }


Class.getResourceAsStream() will delegate to the classloader to find the
resource (searches the classpath) , see
http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)
The tomcat site has an excellent description of Tomcat's classloading :
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html , this
should bring you to the conclusion that the above won't work.
You should put your sqljdbc4.properties file in WEB-INF/classes, or in
WEB-INF/lib if packaged in a jar file.
If you reference it from your application, make sure you prepend a "/" (or
it will search in your servlet's package) .



I've seen mention of using:

System.getenv("APP_PROPERTIES");

in conjunction with a context (context.xml under META-INF) along the lines
of:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/A00720398sat">
   <Environment name="APP_PROPERTIES"
                description="The APP Properties File" override="false"
                type="java.lang.String"
                value="/WEB-INF/app.properties" />
</Context>


however, I'm not able to get the environment, I just get a null value.


can you be a bit more specific where you get a null value (show some lines
of code)...
although the above won't bring you to the content of the property file, you
only have defined a key/value pair.


regards,
Harry


What's the correct, and simple, idiom?  (Staying away from jndi and dbcp
for
now, and, oddly enough, servlets in this case.)



Actually, I suppose in a sense it's in WEB-INF:

dtc01l0376-06:~ a00720398$
dtc01l0376-06:~ a00720398$ jar -tfv
NetBeansProjects/A00720398sat/dist/A00720398sat.war | grep sql
  498 Sat Apr 17 14:36:14 PDT 2010
WEB-INF/classes/controller/sqljdbc4.properties



however, I'd like to move it from WEB-INF/classes up to just WEB-INF.



thanks,

Thufir


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to