tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jacob Kjome <jacob.r.kj...@syntegra.com>
Subject Re: loading a properties file - where does it expect the file tobe?
Date Wed, 27 Sep 2000 13:20:32 GMT
I am doing something similar to this.  I do not use the FileOutputStream 
because I don't need to.  One difference is that I am using the 
java.util.Properties class rather than the System Properties class:

Here is my constructor for the class "DirectoryAction":

public DirectoryAction() {
         Properties props = new Properties();
         FileInputStream propFile = null;
         try {
                 // set up new properties object from file "ldap.properties"
                 propFile = new FileInputStream("my.properties");
                 props.load(propFile);
         } catch (FileNotFoundException e) {
                 System.err.println("Caught FileNotFoundException: " + 
e.getMessage());
         } catch (IOException e) {
                 System.err.println("Caught IOException: " + e.getMessage());
         } finally {
                 if (propFile != null) {
                         System.out.println("Closing FileInputStream...");
                         try {
                                 propFile.close();
                         } catch (IOException e) {
                                 System.err.println("Caught IOException: " 
+ e.getMessage());
                         }
                 } else {
                         System.out.println("FileInputStream not open");
                 }
         }

         //store properties in variables.... (one example below)
         LDAP_CONTEXT_FACTORY = props.getProperty("ldap.factory", 
"com.sun.jndi.ldap.LdapCtxFactory");
}


I also don't want to hardcode my path to the properties file.  I would 
think that I could keep it in the same directory as the class and not have 
to provide a path.

I just don't get why the above works in Tomcat 3.1 and not in 3.2b5????

BTW, I added some comments to a reply from another user on this 
thread.  Might want to read my repsponse on that one too.

thanks,

Jake


At 12:51 AM 9/27/2000 -0400, you wrote:
>Have you considered the System Properties Class?
>
>//Declare a properties object.
>protected Properties defaultProps;
>
>...
>
>      //Create and load default properties
>         try {
>           defaultProps = new Properties();
>           FileInputStream in = new FileInputStream("myPropFile.properties");
>           defaultProps.load(in);
>           in.close();
>         } catch (FileNotFoundException fnfe) {
>           System.out.println("");
>         } catch (IOException e) {
>           System.out.println("");
>         }
>
>   //Get output stream to properties file for storing properties
>   try {
>       FileOutputStream out = new FileOutputStream("myPropFile.properties");
>       defaultProps.put("txtFieldHomeDirectory", 
> txtFieldHomeDirectory.getText());
>       defaultProps.store(out, "---No Comment---");
>       out.close();
>     } catch (FileNotFoundException fnfe) {
>       System.out.println("");
>     } catch (IOException ioe) {
>       System.out.println("");
>     }
>
>//Retrieve values from the properties object after it has been loaded and 
>a property
>has been previously saved.
>String txtFieldHomeDirectory = 
>defaultProps.getProperty("txtFieldHomeDirectory");
>
>
>This is a sample value in the properties file:
>txtFieldPropertiesFile=D\:\\JBuilder3\\myprojects\\TestDir\\recv
>
>Hope this helps.
>
>Raimee
>
>Jacob Kjome wrote:
>
> > The following isn't a problem for me in Tomcat 3.1, but is in 3.2b5
> >
> > I have a servlet that uses another class that isn't a servlet which loads a
> > file with properties in it.
> >
> > When I run the class as an application, it works fine.
> >
> > However, when calling it from a servlet, it can't find the file???
> >
> > The location of my non-servlet class is, currently, in the same directory
> > as my servlet class (and so is my properties file).
> >
> > Some info about my setup:
> > 1.  Platform is Win2k Pro
> > 2.  I use jk_nt_service to run Tomcat as a service
> > 3.  I use mod_jk to connect through Apache Web Server 1.3.12
> > 4.  I use a servlet mapping for the servlet that uses the non-servlet class
> > 5.  To call the file, I use this syntax: FileInputStream propFile = new
> > FileInputStream("my.properties");
> >         The class assumes the properties file to be in the same 
> directory that it
> > exists in and, again, works from the command line as an application
> >
> > I've tried going through both port 80 (Apache) and 8080 (Tomcat) and I get
> > the same behavior
> >
> > Any idea what is going on here?
> >
> > Jake


Mime
View raw message