AW: OT: Problems with classpath under tomcat 5
-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 (lastModifiedtimestamp) 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); } } - 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]
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 (lastModifiedtimestamp) 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]
AW: AW: OT: Problems with classpath under tomcat 5
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 (lastModifiedtimestamp) 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]
Re: AW: AW: OT: Problems with classpath under tomcat 5
Does filename evaluate to something like foo.properties (no other path info) and is that file located in WEB-INF/classes? Quoting Rosenberg, Leon [EMAIL PROTECTED]: 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 (lastModifiedtimestamp) 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/ -- Kris Schneider mailto:[EMAIL PROTECTED] D.O.Tech http://www.dotech.com
AW: AW: AW: OT: Problems with classpath under tomcat 5
Yep, exactly -Ursprüngliche Nachricht- Von: Kris Schneider [mailto:[EMAIL PROTECTED] Gesendet: Mittwoch, 21. Juli 2004 17:30 An: Struts Users Mailing List Betreff: Re: AW: AW: OT: Problems with classpath under tomcat 5 Does filename evaluate to something like foo.properties (no other path info) and is that file located in WEB-INF/classes? Quoting Rosenberg, Leon [EMAIL PROTECTED]: 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 (lastModifiedtimestamp) 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