質問: ### 開発しているシステム * Java7/HTML5の業務用WEBシステム * 約10画面 * 結合テストは約4人日 * 3ヶ月ごとに3人月規模の機能をリリース * Tomcat7 * Apache2.2 * ユーザは数人 * 不具合があったら「修正してリリース」で解決 ### Tomcat8にしたい理由 Java8の新機能(ラムダ式など)を使ってみたいからです。 Java8でないと動かないとか、Java8だと工数が減るとか、そういう理由ではありません。 というか、Java8の新機能もよく分かっていないので、工数が減るかどうかも判断できません。 分かっていないからこそ、プロジェクト環境をJava8にして、Java8の機能を勉強したいのです。 ### 説得材料になりそうなこと * Tomcat7のサポート期間終了 ⇒ Tomcat6もまだサポートしている(https://tomcat.apache.org/tomcat-60-eol.html) * Javaは後方互換なので現在のコードも動く? ⇒ 全てが必ず動く保障はない? ⇒ 結合テストでカバー? * バージョンアップは簡単? ⇒ Tomcat8とJava8のインストールのみ? * Tomcat8にしたとき、Apacheは動く? ### 思うところ 「趣味じゃない?」と言われたら否定はできません。 理由が「使ってみたい」ですから。 だけどバージョンアップしないと、ずっと古いやり方で実装を続けることになるので、それってどうなの?と思います。 なんか非効率じゃない? ### まとめ 上司に「Tomcat7から8へのバージョンアップ」の許可をもらいたいです。 何を材料に、どう説明したらよいか、また本当にバージョンアップすべきかどうかを教えていただきたいです。
回答: そもそもOracle Java 7は通常のサポート期間は終了しており、有償サポートに入らないと脆弱性等が修正されたバージョンは入手できなくなっています。それを理由にJava 8にあげたいではいけないのでしょうか?それともOpenJDKを使っているのでしょうか? Javaを単純にあげるだけであれば、後方互換性が高いため、それほど問題ないと思います。それとTomcat 7はJava 6以上対応となるため、Java 8に対応していない訳ではありません。Javaのみ上げて、Tomcatは見送っても良いかと思います。ただし、Java 8の新機能をフルに使用したい場合はTomcat **9**でないとできない可能性があります。例えばJava 8 + Tomcat 7でJSP内でラムダ式を使うと設定が必要になる(参考)などの制限があるようです。Java 8の新機能目的であればTomcat 9をターゲットにした方が良いかもしれません。 参考: TomcatとJavaのバージョンの対応表 - Apache Tomcat Versions