> -----Original Message-----
> From: Patrick Martz [mailto:[EMAIL PROTECTED]] 
> Sent: Tuesday, December 17, 2002 2:02 PM
> To: 'Tomcat Users List'
> Subject: RE: File access from a servlet.
> 
> 
> Ok well that's exactly the problem. getResourceAsStream 
> requires you to supply the path of the resource and that is 
> what I'm missing. I did a quick look at ServletContext and 
> iterated through the attributes and found none that seemed to 
> give me what I want. These are the attributes currently
> defined:
> 
> org.apache.catalina.jsp_classpath
> javax.servlet.context.tempdir
> org.apache.catalina.resources
> org.apache.catalina.WELCOME_FILES
> 
> None of which seems to be what I'm looking for...essentially 
> something that will tell me the path of my current context so 
> I can modify that path to access my data file. :)
> 

But the path is relative to the root of the context, so you don't need
to know the path to the context, just where the file is within it.  For
example, if your file is actually in
/usr/local/tomcat/webapps/myapp/data/blah.dta, you would call
ServletContext.getResourceAsStream("/data/blah.dta").

If you *really* want the path of the context root, you can use
ServletContext.getRealPath("/") (or
ServletContext.getRealPath("/data/blah.dta") to get the file's path) but
that won't work with WARs, and shouldn't really be necessary.


I just reread your message and realized that you said that the data is
stored in the directory with the servlet class file.  Maybe you can use
getClass().getResourceAsStream("blah.dta")?
-- 
Tim Moore / Blackboard Inc. / Software Engineer
1899 L Street, NW / 5th Floor / Washington, DC 20036
Phone 202-463-4860 ext. 258 / Fax 202-463-4863


> 
> 
> -----Original Message-----
> From: Tim Moore [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, December 17, 2002 10:46 AM
> To: Tomcat Users List
> Subject: RE: File access from a servlet.
> 
> 
> > -----Original Message-----
> > From: Patrick Martz [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, December 17, 2002 1:42 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: File access from a servlet.
> > 
> > 
> > Hi all.
> > 
> > I'm currently working on a java servlet with tomcat and I
> > want it to be able to load a different data file dependent on 
> > certain parameters passed to the servlet. The problem is that 
> > if I just try to open the file with the file name (i.e. 
> > FileInputStream fin = new FileInputStream("blah.dta");) it 
> > fails to find the file. I am guessing this is because the 
> > runtime directory is different from the directory the servlet 
> > is running in? (the data file and the servlet are in the same 
> > directory, but the servlet fails to find the file still). So 
> > my question is, is there a way to get the current runtime 
> > directory for Tomcat so that I can perhaps supply a relative 
> > path to get to the file and have the servlet be able to open 
> > it? Thanks!
> > 
> > Patrick
> > 
> > P.S. For debugging purposes I HAVE tested opening of the file
> > from a stub class and it works just fine that way, but fails 
> > from the servlet.
> > 
> 
> Rather than using FileInputStream, try
> ServletContext.getResourceAsStream.  This is the preferred method for
> accessing files within your webapp.  You pass in the path relative to
> the context root directory.  An added bonus is that this will 
> still work
> if you deploy your webapp as a WAR.
> 
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletConte
xt.html#getResourceAsStream(java.lang.String)
-- 
Tim Moore / Blackboard Inc. / Software Engineer
1899 L Street, NW / 5th Floor / Washington, DC 20036
Phone 202-463-4860 ext. 258 / Fax 202-463-4863

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

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


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

Reply via email to