On 5/29/07, Peter Dawn <[EMAIL PROTECTED]> wrote:
guys,

i am using tomcat 5.0. now i have created a file on my server at
C:\data\packet.xml. when somebody accesses my web app remotely, i want
the user to type in http://ipaddress:8080/packet.xml to be able to
access this file.

One way to access the XML file at http://ipaddress:8080/packet.xml is
to write either a Filter or a Servlet, and specify /packet.xml as the
URL mapping for this Filter or Servlet in web.xml

And inside the Filter or Servlet, you would use Java I/O to access a
file that is outside the web application's context (in your case root
context).

For example:

---------------------------------------------------------------------------------
ShowPacketXMLFilter.java
---------------------------------------------------------------------------------
package somepackage;

import javax.servlet.*;
import java.io.*;

public class ShowPacketXMLFilter implements Filter {

   public void init(FilterConfig filterConfig) throws ServletException {

   }

   public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain filterChain) throws
IOException, ServletException {

       servletResponse.setContentType("application/xhtml+xml");

       PrintWriter out = servletResponse.getWriter();

       BufferedReader br = new BufferedReader(new
FileReader("C:/data/packet.xml"));

       String line;

       while ((line = br.readLine()) != null) {

           out.println(line);

       }
   }

   public void destroy() {

   }
}

--------------------------------------------------------------------------
web.xml
--------------------------------------------------------------------------

   <filter>
       <filter-name>ShowPacketXMLFilter</filter-name>
       <filter-class>somepackage.ShowPacketXMLFilter</filter-class>
       <description>
           This filter reads packet.xml from disk
           and displays it's content at /packet.xml
       </description>
   </filter>

   <filter-mapping>
       <filter-name>ShowPacketXMLFilter</filter-name>
       <url-pattern>/packet.xml</url-pattern>
   </filter-mapping>

can somebody please tell me how i can make a directory outside the
installation folder visible to tomcat.

With Java I/O API you will be able to access any file , even if it is
outside the web application's context.

I don't know if there's a way to access any file outside the web app's
context using Servlet API , others may know.


thanks


-Rashmi

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to