Hi, ln my case i the config file is not in any of the jars, also i cant set it to the classpath for some reason. (This product runs in different machines connecting through RMI). My config file just resides inside WEB-INF. so if i want to set it as a system property what can i do?
The java classes i run are inside a jar which is in WEB-INF/lib directory. David Smith-2 wrote: > > To demystify things: > > 1. ServletContext.getResourceAsStream("/path/inside/webapp.blah") > returns an object that supports the java.io.InputStream stream > interface. After you get the stream, you can treat it like any other > input stream in the java world. > > 2. The path is rooted in the *webapp*, not the file system. Given a > file in a webapp like > $CATALINA_HOME/webapps/mywebapp/WEB-INF/myconfigs/myconfig.properties, > the path you'd use with ServletContext.getResourceAsStream() would be > "/WEB-INF/myconfigs/myconfig.properties". > > 3. Logs would be a different story. You are best off configuring your > log tool according to it's documentation and let it handle the logging. > > --David > > David.Meldrum wrote: >> OK, I agree about writing, but what about reading? I guess I didn't >> realize there was a method called getResourcesStream(), on >> ServletContext, so that clears up some confusion. Yet when I read the >> javadoc on ServletContext.getRessourceAsStream() >> see: >> http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletContext.html#getResourceAsStream(java.lang.String) >> <http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletContext.html#getResourceAsStream%28java.lang.String%29> >> >> It still isn't clear how to properly use this. For example, how do I >> get a reference to the "/webapps/MyWebApp/WEB-INF/foo.properties" file? >> Like this? >> ServletContext.getRessourceAsStream("/webapps/MyWebApp/WEB-INF/foo.properties");? >> >> The javadoc says the argument is a path, but I don't know the full >> path, only relative to Tomcat, and I don't really know where Tomcat is. >> Also how do I create a file under "/logs"? >> Is there some way to determine the path to the /logs directory in a >> format that I can create a file under the logs >> directory, without assuming where Tomcat is deployed? >> >> -d >> >> Caldarale, Charles R wrote: >>>> From: David.Meldrum [mailto:david.meld...@verizon.net] Subject: Re: >>>> Path problem >>>> >>>> actually in my case I am trying to read/write from a ContextListenr >>>> >>> >>> It's generally a bad idea to ever *write* into the webapp deployment >>> space. You have no guarantee that the space is writable, nor that >>> the container will provide any write access. You're much better off >>> writing to files outside of Tomcat's directory structure, where the >>> path can be provided by system property, environment variable, >>> <init-param>, or whatever. >>> >>> >>>> As recommended below, you could use Class.getResourcesStream(), but >>>> as I understand it, >>>> that will give the location of this class under WEB-INF. >>>> >>> >>> Or anywhere else in the webapp's structure; it's not confined to >>> WEB-INF. >>> >>> >>>> public void contextInitialized(ServletContextEvent event) { >>>> ServletContext sctx = event.getServletContext(); >>>> String propPath = sctx.getRealPath( >>>> "/WEB-INF/resource.properties"); >>>> FileInputStream inStrm = new FileInputStream(propPath); >>>> ..... >>>> } >>>> >>> >>> Using ServletContext.getRealPath() is risky; the container is under >>> no obligation to provide access to the underlying file system (think >>> deployment via .war file). Much safer and better to use >>> getResourceAsStream(). >>> >>> - Chuck >>> >>> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > > -- View this message in context: http://www.nabble.com/Path-problem-tp22490662p22535464.html Sent from the Tomcat - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org