Embedding Tomcat 7 | Coppery Keen Clawsを読んでみたが、
Tomcatがまだよく分かってないこともあり各行が何をしているか分からなかった
ので調べてみた。
public static void main(String[] args) throws Exception {
String appBase = args[0];
Integer port = Integer.valueOf(args[1]);
Tomcat tomcat = new Tomcat(); // Tomcatインスタンス生成
tomcat.setPort(port); // Tomcatにアクセスするポート番号を指定
tomcat.setBaseDir("."); // tempファイルを配置するためのディレクトリとして、指定が必要。最初に呼ばれるメソッドであるべき、とかかれている。設定されない場合各自のシステム設定に依存する。
tomcat.getHost().setAppBase(appBase); // TomcatインスタンスのAppBaseを設定する。AppBaseとは起動するTomcatインスタンスのベースディレクトリ。指定されないと$CATALINA_BASE/webappsが指定される。
String contextPath = "/myapp";
// Add AprLifecycleListener // APR = Apache Portable Runtime
StandardServer server = (StandardServer)tomcat.getServer(); // JVMのServerインスタンスを取得する。
AprLifecycleListener listener = new AprLifecycleListener();
server.addLifecycleListener(listener); // ライフサイクルリスナーを指定
tomcat.addWebapp(contextPath, appBase); // Tomcatインスタンスにwebappを追加する。$CATALINA_HOME/webapps配下にアプリケーションを配置するのと同じ。 $CATALINA_HOME/webapps/appBase/contextPathにアプリが配置され
るイメージ?多分)
tomcat.start(); // Tomcat起動
tomcat.getServer().await(); // awaitで、正常なシャットダウンコマンドが送られてくるまで待機する。
}
現在進行形で勉強中なので、これからも分かったことは追記するつもりです。
特に参考資料は自分のためにもここにまとめておきたいです。
参考資料
Embedded Tomcat起動の設定方法系
- Embedding Tomcat 7 | Coppery Keen Claws
- Tomcat (Apache Tomcat 7.0.64 API Documentation)#setBaseDir
- Apache Tomcat 7 Configuration Reference (7.0.64) - The Host Container
- Tomcatをデフォルトで実行するとログに「AprLifecycleListener」の警告が 出力される - 猫にWeb
- Embedding Apache Tomcat 7.0 | Nilesh D Kapadia