展開されたフォルダー内にないローカル ディレクトリからファイルを提供するために、埋め込まれた 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: 開発中の埋め込み tomcat にコンテキストを追加
しかし、私は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();
}
}