AW: OT: Problems with classpath under tomcat 5

2004-07-21 Thread Rosenberg, Leon


 -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

2004-07-21 Thread Kris Schneider
..
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

2004-07-21 Thread Rosenberg, Leon
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

2004-07-21 Thread Kris Schneider
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

2004-07-21 Thread Rosenberg, Leon
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