The simple way that I recommend use jndi resuorces. Then you must configure each server access to database. In your source code you doesn't need the information to access to database or other resources. Is the standard form. If your architecture is more complex you can define a custom resource that connect to a service where you define your properties.
2011/5/5 Alan Chaney <[email protected]> > Erel > > > On 5/5/2011 10:03 AM, Erel Segal wrote: > >> I have a GWT web application that I run on multiple Tomcat servers. It >> happens to need some configuration, such as database username and >> password, initialization data, etc. I would like to put all this info >> in a configuration file, but, I where should I put the file so that my >> application will find it? >> >> >> Your question is really a tomcat question rather than a GWT question, in > that the information you are providing is for the server, and > not directly for the GWT application. > > My personal practice is to do the following: > > 1. If the information is the same in all instances, place it in a Java > properties file in the classpath - typically a "myapp.properties" file. > Then use the ClassLoader.getResource() or > ClassLoader.getResourceAsInputStream() to read it. If you are using Spring, > you can actually inject > such a resource file into the appropriate service bean. > > 2. If the information is different in different environments, place the > properties file in a "known place" for example, > ${user.home}/.myapp/myapp.properties. See my comment below about starting as > root!!!! > > 3. If you *really* need the option to specify the location, do it as > -DpropertyfileName=<path to your property> on the command line, and indirect > all the references to the property file in the methods above. > > > * I tried to use an environment variable to tell me where the file is >> located, but, I found out that the environment on Linux depends on who >> starts the Tomcat server - if it is started at initialization, it's >> the environment of the "root" user, but if I restart it manually, it >> uses my personal environment (Windows doesn't have this problem). >> >> Apologies for "shouting", but! > > NEVER EVER RUN TOMCAT AS ROOT ON A PUBLICLY ACCESSIBLE SERVER! > > This is a *huge* security hole. Either: > > 1. bind the server to a port above 1000 and start and run as a regular or > restricted user. > > 2. Use jsvc to start the server as root and switch to a restricted user > after startup. Search google for jsvc (its in the tomcat distro.) > IMHO this is best way to start and stop tomcat - you can have an init > script and do "service tomcat start" and "service tomcat stop" in linux > > > 3. Use some kind of port mapping (eg Apache + a connector or iptables) to > map from port 80 if you really don't want to use jsvc and you must have > http:80. > > By restricted user I mean that I create a tomcat user who does not have a > login and isn't called 'tomcat'!. Then I start the server as this user. If I > need to start the server manually, then I SSH as a regular use (with a port > diffferent from 22) and su - and then su - tomcatuser to start the server. > To do this, you should make all read-only tomcat and application files owned > by root, and only those files (mainly logs and scratch areas) which *must* > be written owned by tomcatuser (or whatever you call them). If you need > access from your command line, then create a common group and set the > appropriate s bits for shared access. Google for "linux permissions". > > > HTH > > Regards > > Alan > > > > > I am sure I am not the first one that needs to configure a GWT >> application. How do the experts do this? >> >> >> > > -- > Alan Chaney > CTO and Founder, Mechnicality, Inc. > www.mechnicality.com > > > -- > You received this message because you are subscribed to the Google Groups > "Google Web Toolkit" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-web-toolkit?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
