natural born minority
SpringBootの起動可能jar - SpringBootの起動機能の無いwar = 起動機能部分だけの構成
ができるか?と思い
java -jar
で起動したのだが「構造にSpringBootアプリの形状を期待」しているため、動かず。
maven
である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("./");
逆に、Tomcat7以下であれば「UTF-8にならない」ので、多くの場合7以下でこの指定をすることとなる。
tomcat.getConnector().setURIEncoding("UTF-8"); // Tomcat8のデフォルトと合わせる