Thanx, but it doesn't work either.

> -----Ursprüngliche Nachricht-----
> Von: Kris Schneider [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 21. Juli 2004 16:54
> An: Struts Users Mailing List
> Betreff: Re: AW: OT: Problems with classpath under tomcat 5
> 
> ..
> String fileName = target.getConfigurationName() + ".properties";
> ClassLoader cl = Thread.currentThread().getContextClassLoader();
> InputStream in = cl.getResourceAsStream(fileName);
> Properties props = new Properties();
> props.load(in);
> ..
> 
> Quoting "Rosenberg, Leon" <[EMAIL PROTECTED]>:
> 
> >
> >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Peng Tuck Kwok [mailto:[EMAIL PROTECTED]
> > > Gesendet: Mittwoch, 21. Juli 2004 16:10
> > > An: Struts Users Mailing List
> > > Betreff: Re: OT: Problems with classpath under tomcat 5
> > >
> > > Are you sure if it is not looking your properties file in the
> > > classpath of the webapp ?
> >
> > Yes, because it would find them there.
> >
> > > When you say everything works fine until tomcat 5 is used , does the
> > > console print out any error ? Also how do you know it is searching in
> > > shared classes ?
> >
> > Yes, the console prints out our debug output:
> >
> > xyz.properties doesn't exist, skipping update for [EMAIL PROTECTED]
> >
> > if you read the code, you'll find that it's also trying to locate the
> '.'
> > directory. In all other environments it's webapps/mywebapp/WEB-
> INF/classes
> > in tomcat5 it's .../common/classes (which is one of the pathes according
> to
> > tomcat5 class loader faq). (Sorry, I wrote shared/classes in my first
> mail,
> > it was common/classes, but it doesn't really matter, because both aren't
> the
> > right ones :-)
> >
> > Regards
> > Leon
> >
> >
> > >
> > > On Wed, 21 Jul 2004 15:45:01 +0200, Rosenberg, Leon
> > > <[EMAIL PROTECTED]> wrote:
> > > > Hi,
> > > >
> > > > it's a bit OT but maybe some of you had a similar problem shortly
> and
> > > > can help.
> > > >
> > > > We have a configuration component which configures other components
> of
> > > > the application out of property files. The property files lies in
> the
> > > > 'classes' directory of the application. Everything works fine until
> we
> > > > use tomcat 5 (5.0.19).
> > > >
> > > > In tomcat 5 the ClassLoader doesn't search for our property files in
> > > > webapps/mywebapp/WEB-INF/classes. Instead it seems to search in
> > > > shared/classes which imho should be done after the private webapp
> > > > classpath has bin searched through.
> > > >
> > > > As I said before it works fine with standalone applications and with
> > > > resin.
> > > >
> > > > Any ideas?
> > > >
> > > > Regards
> > > >
> > > > Leon
> > > >
> > > > P.S.
> > > >
> > > > The files are there and we have the rights to read them.
> > > >
> > > > P. P.S. the code:
> > > >
> > > >       private void updateConfigurable(IConfigurable target, boolean
> > > > dontcheck){
> > > >
> > > >             String fileName =
> > > > target.getConfigurationName()+".properties";
> > > >
> > > >             log.debug("Checking for "+"/"+fileName);
> > > >
> > > >             log.debug("Approx. checking in
> > > > "+target.getClass().getResource("/."));
> > > >
> > > >             URL u = target.getClass().getResource("/"+fileName);
> > > >
> > > >             if (u==null){
> > > >
> > > >                   log.error(fileName+" doesn't exist, skipping
> update
> > > > for "+target);
> > > >
> > > >                   return;
> > > >
> > > >             }
> > > >
> > > >             if (!dontcheck){
> > > >
> > > >                   log.debug("Checking "+target);
> > > >
> > > >                   File f = new File(u.getFile());
> > > >
> > > >                   long lastModified = f.lastModified();
> > > >
> > > >                   long timestamp = getTimestamp(target);
> > > >
> > > >                   if (lastModified<timestamp)
> > > >
> > > >                         return;
> > > >
> > > >                   log.debug("filename has been updated.");
> > > >
> > > >             }
> > > >
> > > >             log.debug("updating "+target);
> > > >
> > > >             try{
> > > >
> > > >                   Properties p = new Properties();
> > > >
> > > > p.load(target.getClass().getResourceAsStream("/"+fileName));
> > > >
> > > >                   target.notifyConfigurationStarted();
> > > >
> > > >                   Enumeration keys = p.keys();
> > > >
> > > >                   while(keys.hasMoreElements()){
> > > >
> > > >                         String key = (String)keys.nextElement();
> > > >
> > > >                         String value = p.getProperty(key);
> > > >
> > > >                         target.setProperty(key, value);
> > > >
> > > >                   }
> > > >
> > > >                   target.notifyConfigurationFinished();
> > > >
> > > >                   setTimestamp(target);
> > > >
> > > >             }catch(Exception e){
> > > >
> > > >                   log.error("updateConfigurable", e);
> > > >
> > > >             }
> > > >
> > > >       }
> 
> --
> Kris Schneider <mailto:[EMAIL PROTECTED]>
> D.O.Tech       <http://www.dotech.com/>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to