GAリリース
Struts2.5 GA リリースされましたので、さっそく移行&検証しました。
公式アナウンス:
https://struts.apache.org/announce.html#a20160509
移行における変更必須のもの
2.5へ移行する際に変更が必須となるものです。
Javaランタイム
7.0以降が必須です。
リリース対象外のプラグイン
次のプラグインは 2.5から存在しません。これらのプラグインを利用している場合は2.5への移行はかなり難しいでしょう。(そもそも2.3.xあたりで動作しなくなるものもあります)別プラグインの検討ないしは変更が必要でしょう。
- Dojo Plugin - 2.3時代から非推奨にマークされていました。jQueryプラグインが登場したため、切り替わっています。
- Codebehind Plugin - 2.0時代に使われていましたが、Conventionプラグインが正式採用されると更新されなくなりました。
- JSF Plugin - 途中で更新が停止
- Struts1 Plugin - 2.0.xでは使われていましたが、Action/ActionFormを2のActionへ内部的に置き換えてくれるだけで、JSPの対応は一切ないため、使われなくなりました
フィルタのパッケージ変更
web.xmlにて定義する、Struts2用フィルタクラスの パッケージ名が変更 になりました。
- 新:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
- 旧:org.apache.struts2.dispatcher .ng .filter.StrutsPrepareAndExecuteFilter
他にもパッケージ移動したクラスたちがあります。
引用元:http://struts.apache.org/docs/version-notes-25.html
新 | 旧 |
---|---|
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter | org.apache.struts2.dispatcher .ng .filter.StrutsPrepareAndExecuteFilter |
org.apache.struts2.dispatcher.filter.StrutsExecuteFilter | org.apache.struts2.dispatcher. ng .filter.StrutsExecuteFilter |
org.apache.struts2.dispatcher.filter.StrutsPrepareFilter | org.apache.struts2.dispatcher. ng .filter.StrutsPrepareFilter |
org.apache.struts2.dispatcher.listener.StrutsListener | org.apache.struts2.dispatcher. ng .listener.StrutsListener |
org.apache.struts2.result.ServletRedirectResult | org.apache.struts2.dispatcher.ServletRedirectResult |
com.opensymphony.xwork2.interceptor.ValidationAware | com.opensymphony.xwork2.ValidationAware |
下の2つは本来の用途とパッケージが合致していなかったですね…。
その他プラグインで注意するところ
Java8-Supportプラグイン
Webwork2(xwork)のパッケージが、すべてstruts2-coreに移動しました。(クラスやパッケージの変更は ほぼ ありません)
そのためJava8-supportプラグインを利用されているプロジェクトの場合は、pom.xmlでasmのバージョンを5.0にしているかと思いますので、pom.xmlの修正が必須です。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5</version>
<exclusions>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm-commons</artifactId>
</exclusion>
</exclusions>
</dependency>
Springプラグイン
Struts2.5ではSpringのバージョンを4.1.6で指定しており、4.1.6以降ないしは4.2.xが必須です。
検証環境
私の検証済み環境とバージョンを列挙します。参考までに。
- JDK8
- Tomcat 8.0,33
- Struts2.5.2
- Struts2-Spring plugin
- Struts2-Convention plugin
- Spring framework 4.2.4.RELEASE
- Thymeleaf 3.0.2.RELEASE
- Struts-Thymeleaf plugin(自前) 3.0.2対応
- Mybatis 3.4.0
- Log4J 2.7
- lombok 1.16.6