LoginSignup
16
19

More than 5 years have passed since last update.

Struts2.5←2.3.xの移行について

Last updated at Posted at 2016-05-11

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の修正が必須です。

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
16
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
19