Ah, Okay, so I should use the addWebapp method to add a path to an external
folder?

e.g tomcat.addWebapp("/MyWebApp/images", "/tmp/images");

Thanks,
Jimmy


On Tue, Jan 29, 2013 at 2:06 PM, Konstantin Kolinko
<knst.koli...@gmail.com>wrote:

> 2013/1/29 Jimmy Johnson <eclectic.sou...@gmail.com>:
> > System: Mac OS X 10.8
> > Tomcat Version: 7.0.30
> > Language: Java
> >
> > I'm trying to set up the context in an embedded Tomcat instance to serve
> > files from a local directory not within the deployed folder.
> >
> > In the standard server.xml when using the standard Tomcat configuration I
> > have this:
> >
> >     <Context docBase="/MyWebApp/images" path="/tmp/images/"
> > reloadable="false"/>
> >
> > and it works great.
> >
> > I have tried different variations on the following tomcat embedded call
> > without success:
> >
> >     tomcat.addContext(tomcat.getHost(), "/MyWebApp/images",
> > "/documents/images/");
> >
> > I also tried:
> >
> >     tomcat.addContext("/MyWebApp/images", "/documents/images/");
> >
> > It seems that Tomcat does see the external docBase folder I have
> specified
> > because if I specify a path that doesn't exist it complains.  It also
> see's
> > the context mapping because hitting the "/MyWebApp/images" filters out
> the
> > request before it hits the spring security filters I have in place and
> > reports a 404 file not found.
> >
> > I am planning on looking at the source this evening and seeing if I can
> > track down the file path it is looking at, but I thought someone here
> might
> > know of a solution.
> >
> > It looks like this grails question was along the same lines:
> >
> >
> http://stackoverflow.com/questions/8332851/grails-add-context-to-embedded-tomcat-in-development
> >
> > But im not using grails.
> >
> > Here is the full startup code I am using:
> >
> > package launch;
> >  import java.io.File;
> > import org.apache.catalina.startup.Tomcat;
> >  public class Main {
> >  public static void main(String[] args) throws Exception {
> >  String webappDirLocation = "/src/main/webapp/";
> > Tomcat tomcat = new Tomcat();
> >  //The port that we should run on can be set into an environment variable
> > //Look for that variable and default to 8080 if it isn't there.
> > String webPort = System.getenv("PORT");
> > if(webPort == null || webPort.isEmpty()) {
> > webPort = "8080";
> > }
> >  tomcat.setPort(Integer.valueOf(webPort));
> >  tomcat.addWebapp("/MyWebApp", new
> > File(webappDirLocation).getAbsolutePath());
> > tomcat.addContext("/MyWebApp/images", "/tmp/images/");
>
> The above two lines. You already know the "addWebapp" method, so why
> are you trying to use "addContext"?
>
> >  tomcat.start();
> > tomcat.getServer().await();
> > }
> > }
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to