有谁知道如何在嵌入式 Tomcat 实例中设置上下文以从不在部署文件夹中的本地目录提供文件?
在标准 server.xml 中,它看起来像这样:
<Context docBase="/MyWebApp/images" path="/tmp/images/" reloadable="false"/>
我尝试了以下 tomcat 嵌入式调用的不同变体,但均未成功:
tomcat.addContext(tomcat.getHost(), "/MyWebApp/images", "/tmp/images/");
我也试过:
tomcat.addContext("/MyWebApp/images", "/tmp/images/");
看起来这个 grails 问题的思路是一样的:
但我没有使用 grails。(使用 Java)
这是我正在使用的完整启动代码:
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/");
tomcat.start();
tomcat.getServer().await();
}
}