Re: loading properties file from WEB-INF instead of WEB-INF/classes

2010-04-19 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

David,

On 4/18/2010 2:27 PM, David Smith wrote:
> ServletContext.getResource( path ) takes path as relative to the current
> webapp and returns a URL for opening the resource or null if the
> resource was not found.
> 
> also there is --
> 
> ServletContext.getResourceAsStream( path ) takes a path as relative to
> the current webapp and returns an i/o stream for reading the file.

Yes, please use ServletContext.getResourceAsStream.

> both of these are well documented in the servlet spec.

And in the Servlet API itself if you don't want to dig into the spec
just to read the javadoc.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkvMyzoACgkQ9CaO5/Lv0PAG5QCgmmoU7Blc/z1Gzkl3uwOvEUmu
K7wAoJwSb/lD3sVxaYpcg0gq/323BMH3
=N2lO
-END PGP SIGNATURE-

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



Re: loading properties file from WEB-INF instead of WEB-INF/classes

2010-04-18 Thread André Warnier

Yucca Nel wrote:
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


Not quite sure what you mean by this, but assuming you mean that there 
is a link to "country-flag.gif", and depending on the user's origin, you 
want to send back the appropriate one, in my simple mind I would create 
property files with the appropriate translation to the real thing, and 
use them in my application to return the appropriate image (or redirect 
to it).


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



Re: loading properties file from WEB-INF instead of WEB-INF/classes

2010-04-18 Thread David Smith
An alternative exists in the ServletContext class --

ServletContext.getResource( path ) takes path as relative to the current
webapp and returns a URL for opening the resource or null if the
resource was not found.

also there is --

ServletContext.getResourceAsStream( path ) takes a path as relative to
the current webapp and returns an i/o stream for reading the file.

For example, using this within a servlet:

try {
java.io.InputStream res_stream =
this.getServletContext().getResourceAsStream('/WEB-INF/my-config.ini') ;
// read the data
} catch (java.io.IOException ioe) {
// handle the problem
}

both of these are well documented in the servlet spec.

--David

On 4/19/2010 2:02 PM, Yucca Nel wrote:
> 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" 
> Sent: Sunday, April 18, 2010 7:32 PM
> To: "Tomcat Users List" 
> Subject: Re: loading properties file from WEB-INF instead of WEB-INF/classes
>
>   
>> 2010/4/17 Thufir 
>>
>> 
>>> 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:
>>>
>>> 
>>> 
>>>>> description="The APP Properties File" override="false"
>>> type="java.lang.String"
>>> value="/WEB-INF/app.properties" />
>>> 
>>>
>>>
>>> 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
>
>   


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



Re: loading properties file from WEB-INF instead of WEB-INF/classes

2010-04-18 Thread Yucca Nel
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" 
Sent: Sunday, April 18, 2010 7:32 PM
To: "Tomcat Users List" 
Subject: Re: loading properties file from WEB-INF instead of WEB-INF/classes


2010/4/17 Thufir 


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:



   



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



Re: loading properties file from WEB-INF instead of WEB-INF/classes

2010-04-18 Thread Harry Metske
2010/4/17 Thufir 

> 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:
>
> 
> 
> description="The APP Properties File" override="false"
> type="java.lang.String"
> value="/WEB-INF/app.properties" />
> 
>
>
> 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
>
>


loading properties file from WEB-INF instead of WEB-INF/classes

2010-04-17 Thread Thufir
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());
}


I've seen mention of using:

System.getenv("APP_PROPERTIES");

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







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


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