NBM2

natural born minority

実行可能なwarを作る方法メモ

実行可能なwarを作る方法メモ

SpringBootから感じを探る

SpringBootの起動可能jar - SpringBootの起動機能の無いwar = 起動機能部分だけの構成

ができるか?と思い

  • Zipの中身を差異分析
  • 中身から「SpringBootのアプリ部分」を削除
  • その中に「別のWarから持ってきた中身」を封入
  • java -jar で起動

したのだが「構造にSpringBootアプリの形状を期待」しているため、動かず。

maven-tomcat-plugin

自力で作る場合の手がかり

Tomcat8(7後半)になると同じことをしても動かない件

Tomcat7.0.47以降からは、以下のような「単純な実装」なら、ディレクトリが作れなかったり、Warが展開できなかったりして、正常な起動をしない。

Tomcat tomcat = new Tomcat();
tomcat.addWebapp(parameters.contextRoot(), thisWarPath.toString());
tomcat.setPort(parameters.port());
tomcat.start();
tomcat.getServer().await();

上記のバージョンから「appBaseが必須となる(実サーバであればserver.xmlで)」のためで、start()前に以下の対策が要る。

tomcat.getHost().setAppBase("./");

参考 : http://tomcat.10.x6.nabble.com/Embedded-Tomcat-does-not-automatically-create-quot-webapps-quot-folder-td5051412.html

Tomcat8からデフォルトエンコーディングが ‘UTF-8’ になる

逆に、Tomcat7以下であれば「UTF-8にならない」ので、多くの場合7以下でこの指定をすることとなる。

tomcat.getConnector().setURIEncoding("UTF-8");  // Tomcat8のデフォルトと合わせる

関係ないが細かい技術

blog comments powered by Disqus