hi chris I've turned to this.getClass().getClassLoader().getResource() Thread.currentThread().getClassContext().getResource()
they were all pointed to tomcat/common finally I uncompressed the jar to /myApps/WEB-INF/classes, that solved the problem. i follow the doc of tomcat, the jars under /WEB-INF/lib are not loaded by COMMON LOADER,I still don't know why the classpath is in common Re, On Wed, Aug 12, 2009 at 4:54 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Lin, > > On 8/12/2009 9:43 AM, Lin Chun wrote: > > I have a java class packaged in a jar in /myApp/WEB-INF/lib > > In this class I have to get a resouce , > > > > ClassLoader.getSystemResource(CONFIG_FILE_NAME).toURI()) > > Note that this uses the "system" ClassLoader to locate resources. I > suspect the CLASSPATH for that loader is something like > /opt/sun-jdk-x-y-z/lib/rt.jar plus a few other things. No Tomcat stuff. > No webapp libraries or WEB-INF/classes or anything like that. > > > I get null of this, when I trace the pb I find that the current path of > > class was "tomcat/common" but not myApp/WEB-INF/lib > > Do you mean that the "current working directory" of the JVM process is > tomcat/common? That's not surprising: Tomcat probably never changes its > working directory for any reason. > > The CWD is pretty much irrelevant if you want to load things from the > ClassLoader. > > I don't think you want to use the system ClassLoader, so let me suggest > an alternative: > > InputStream configFile = this.getClass().getClassLoader() > .getResourceAsStream(CONFIG_FILE_NAME); > > This will work if your config file is rooted in your webapp's root (like > webapps/myApp). If your config file is located in > .../webapps/myApp/WEB-INF/config.xml then you want to set > CONFIG_FILE_NAME to "/WEB-INF/config.xml". > > Remember that the input stream returned from getResourceAsStream can be > null if the resource is not found (instead of an exception being > thrown), so you should check the return value before using it. > > - -chris > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (MingW32) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iEYEARECAAYFAkqC14oACgkQ9CaO5/Lv0PAd6ACdFF4jNr2FUn60Dm25HQgmbESk > tioAnjFD8a4hHFjphOWV0IV9vmBN/A2c > =mowI > -----END PGP SIGNATURE----- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > -- ------------------------- Lin Chun Joan Crawford<http://www.brainyquote.com/quotes/authors/j/joan_crawford.html> - "I, Joan Crawford, I believe in the dollar. Everything I earn, I spend."