Howdy, A Servlet-independent way to do this would be with the java.util.prefs API (JDK 1.4 and later). It would save stuff on disk, in the registry, or in a DB as needed.
Yoav Shapira Millennium ChemInformatics >-----Original Message----- >From: Harry Mantheakis [mailto:[EMAIL PROTECTED] >Sent: Friday, November 07, 2003 6:27 PM >To: Tomcat Users List >Subject: Re: How to persist web-app properties across restarts ? > >Hello > >Here is some stuff that works for me when it comes to *loading* (reading) >properties from (usually) a servlet init method... > > > public void init( ServletConfig config ) throws ServletException { > > super.init( config ); > > String dbDriver = null; > String dbURL = null; > String username = null; > String password = null; > > Properties props = new Properties(); > ServletContext context = config.getServletContext(); > String path = "/WEB-INF/classes/props/my_props.txt"; > > InputStream in = context.getResourceAsStream( path ); > if( in != null ) { > try { > props.load( in ); > dbDriver = props.getProperty( "dbDriver", "null" ); > dbURL = props.getProperty( "dbURL", "null" ); > username = props.getProperty( "username", "null" ); > password = props.getProperty( "password", "null" ); > ... // Read other values. > } catch ( IOException e ) { > ... // Set default values or handle exception. > } finally { > try { in.close(); } catch ( IOException ignore ) {} > } > } else { > ... // Set default values. > } > > } // method > > >The 'my_props.txt' properties file would contain the following name-value >pairs: > > dbDriver = oracle.jdbc.driver.OracleDriver > dbURL = jdbc:oracle:thin:@123.123.123.123:1521:xyz > username = myusername > password = mypassword > >The API for the 'java.util.Properties.load' method has a full description >how to write a suitable property file. > >It would be easy enough to write out a property file - from (say) a servlet >destroy method - which could be loaded as above. > >You are probably right about using the temp directory provided by the >ServletContext: it is the only way to *write* stuff that I can think of, >but >beware that the specification does not say anything about temp files being >saved between invocations! > >Good luck. > >Harry Mantheakis >London > > >> thanks, but the whole point of this is to persist a property across >restarts - >> whether they be the entire VM or just the web-app. >> >> Is there a consistent wat to persist property information for the web-app >to >> the filesystem, in the same way that sessions can be >> persisted ? >> I know that the servlet spec requires the ServletContext to provide a >tempdir, >> so I will probably try serializing my properties to a >> file in that dir. >> >> >> >> >>> -----Original Message----- >>> From: Jacob Kjome [mailto:[EMAIL PROTECTED] >>> Sent: Friday, November 07, 2003 2:17 PM >>> To: Tomcat Users List >>> Subject: Re: How to persist web-app properties across restarts ? >>> >>> >>> >>> Put a singleton helper class in a parent classloader such as in shared >or >>> common Tomcat classloaders and manipulate collections there. They will >>> exist as long as the JVM (and Tomcat) is running. >>> >>> Otherwise, you should also be able to use stuff like >System.setProperty(). >>> >>> Jake >>> >>> At 01:51 PM 11/7/2003 -0500, you wrote: >>> >>>> I am looking for the most standard and lightweight way to persist some >>>> properties about a web application across restarts of the web >>>> application or the entire server. >>>> Something like the ServletContext.setAttribute() method, but with the >>>> persistence ability that you get from Http sessions would be >>>> perfect. >>>> I am using this for a management servlet that can indicate to load >>>> balancing software that traffic needs to be directed away from a >>>> given tomcat instance when it's in a certain state, and the management >>>> servlet needs to remember what state it was last in when it's >>>> application is restarted. Because it's used in monitoring I don't want >any >>>> dependancies on external data stores other than simple >>>> file system. >>>> >>>> Thanks >>>> >>>> Steph > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
