Configuration params for a webapp - best practice?

S

Steve

Hi,

I have a web app running in Tomcat and it can be configured with various
parameters.

In particular, one of the parameters is a file path that defines where
various work files, uploaded files and logs are written to.

I have created a config file in this folder for other parameters but
ultimately something needs to define this path.

My first attempt had the path hard-coded but now I realise that's probably
not right, since I have to install the web app on Windows and Unix machines.

So then I checked the 'os.name' system property but that only gave me a Unix
version and a Windows version of the path - still ultimately hard-coded.

Where is the best place to configure this path so it's not hard coded in the
web app and is easy to configure when the app is deployed?

Thanks very much.


--
Regards,
Steve

"...which means he created the heaven and the earth... in the DARK! How good
is that?"
 
?

=?ISO-8859-1?Q?Arne_Vajh=F8j?=

Steve said:
I have a web app running in Tomcat and it can be configured with various
parameters.

In particular, one of the parameters is a file path that defines where
various work files, uploaded files and logs are written to.

I have created a config file in this folder for other parameters but
ultimately something needs to define this path.

My first attempt had the path hard-coded but now I realise that's probably
not right, since I have to install the web app on Windows and Unix machines.

So then I checked the 'os.name' system property but that only gave me a Unix
version and a Windows version of the path - still ultimately hard-coded.

Where is the best place to configure this path so it's not hard coded in the
web app and is easy to configure when the app is deployed?

readonly => put it in the war

single app Tomcat => JVM arg -Dmy.config=...

Java 1.5 => set a variable and get it in web app with System getenv

fallback => OS neutral absolute path like "/mycfg"

Arne
 
C

Chris Smith

Steve said:
Where is the best place to configure this path so it's not hard coded in the
web app and is easy to configure when the app is deployed?

The right way to do this is to put the information in a context
initialization parameter. From any servlet, you can access this
information from the ServletContext object. You can put a default value
into web.xml, and then the servlet container will provide a mechanism to
configure the parameter for a particular deployment (for example, in
Tomcat, you'd use server.xml in the conf/ directory).
 
S

Steve

The right way to do this is to put the information in a context
initialization parameter. From any servlet, you can access this
information from the ServletContext object. You can put a default value
into web.xml, and then the servlet container will provide a mechanism to
configure the parameter for a particular deployment (for example, in
Tomcat, you'd use server.xml in the conf/ directory).

Thanks Chris.

--
Regards,
Steve

"...which means he created the heaven and the earth... in the DARK! How good
is that?"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,128
Latest member
ElwoodPhil
Top