Migration Guide 5.3.0_ja - terasolunaorg/terasoluna-gfw GitHub Wiki

5.2.0から5.3.0への移行ガイド

.. only:: html

 .. contents:: 目次
    :depth: 2
    :local:

5.3.0での主な変更点

5.3.0での主な変更点は以下の通りです。

  • Maven Centralリポジトリへ移行
  • Spring Frameworkを4.3へ更新
  • Spring Securityを4.1へ更新
  • Spring IO PlatformをAthensへ更新
  • MyBatisを3.4へ更新
  • Hibernate ORMを5.0へ更新
  • 共通ライブラリの仕様を一部変更
  • ブランクプロジェクトの変更

Maven Centralリポジトリへ移行

5.3.0から、リモートリポジトリをMaven Centralリポジトリへ移行しました。

  • [#664] Modify pom.xml related to "Maven Central" migration

Spring Frameworkを4.3へ更新

5.3.0から、Spring Framework 4.3.5.RELEASEへ更新しました。

Spring Securityを4.1へ更新

5.3.0から、Spring Security 4.1.4.RELEASEへ更新しました。

Spring IO PlatformをAthensへ更新

5.3.0から、Spring IO PlatformをAthens-SR2へ更新しました。

MyBatisを3.4へ更新

5.3.0から、MyBatis 3.4.2へ更新しました。この更新にあわせて、MyBatis Springを1.3.0へ更新しました。

Hibernate ORMを5.0へ更新

5.3.0から、Hibernate ORM 5.0.11へ更新しました。

共通ライブラリの仕様を一部変更

5.3.0から、バグ修正に伴い共通ライブラリの一部仕様を変更しました。

  • [#634] @Compare don't display error message for left property in certain cases

ブランクプロジェクトの変更

5.3.0から、ブランクプロジェクトの一部設定ファイルを変更しました。

Maven Centralリポジトリへの移行に伴う変更

Spring IO Platformのバージョンアップに伴う変更

Spring Frameworkのバージョンアップに伴う変更

  • [single#270] [multi#304] Exclude NestedServletException from handling target of SystemExceptionResolver

MyBatisのバージョンアップに伴う変更

  • [single#261] [multi#295] Since Mybatis 3.4.2, setting of aggressiveLazyLoading = false becomes unnecessary

その他の変更

  • [single#259] [multi#293] Using DataSourceTransactionManager may be committed on error of commit phase

5.2.0から5.3.0への移行手順

移行手順は、以下の通りです。

Note

凡例

Required : 手順の適用は必須
Required by case : 手順の適用は条件付きで必須
Optional : 手順の適用を推奨 (必要に応じて手順の適用を実施)
- : 手順の適用は必要なし

[全般]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
Maven Central移行に伴うpom.xmlの変更 Required Required Required
依存ライブラリを更新 Required Required Required
Seleniumの依存ライブラリ設定の追加 Required by case Required by case Required by case

[Spring Framework]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
rollbackOnCommitFailureオプションの設定更新 Required by case Required by case Required by case
セッションスコープのオブジェクト取得時にリクエストパラメータのバインドを防止する Optional Optional Optional

[Spring Security]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
AntPathRequestMatcherのリクエストマッチングで大文字と小文字が区別されるようになったことに伴う修正 Required by case Required by case Required by case

[Spring MVC]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
致命的なエラーのハンドリング方法変更に伴う修正 Required Required Required
<mvc:view-controller>の仕様変更に伴う修正 Required by case Required by case Required by case
チェックボックスの空送信時のバインド値変更に伴う修正 Required by case Required by case Required by case

[MyBatis]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
aggressiveLazyLoadingのデフォルト値変更に伴う修正 Required by case Required by case Required by case
BLOB/CLOB用のTypeHandler追加に伴う修正 Optional Optional Optional
JSR-310のTypeHandler設定を削除 Optional Optional Optional

[Hibernate ORM]

.. tabularcolumns:: |p{0.10\linewidth}|p{0.30\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|p{0.20\linewidth}|
ステップ 手順 MavenMultiple Projects MavenSingle Project EclipseWTP Project
PostgreSQL使用時にnowait句が付加されない不具合の修正 Required by case Required by case Required by case

[Step 1] Maven Central移行に伴うpom.xmlの変更

Maven Centralリポジトリへの移行にともない、pom.xmlの設定を変更します。

[手順が必要なケース]

この手順の適用は必須です。

[修正方法]

  • ($YOUR_SINGLE_PROJECT_ROOT/pom.xml)
  • ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT_ROOT/pom.xml)

terasoluna-gfw-releasesterasoluna-gfw-snapshotsの設定を削除します。

<repositories>
    <!-- omitted -->
    <!-- ### 削除箇所 ここから ### -->
    <repository>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>terasoluna-gfw-releases</id>
        <url>http://repo.terasoluna.org/nexus/content/repositories/terasoluna-gfw-releases/</url>
    </repository>
    <!-- ### 削除箇所 ここまで ### -->
    <!-- omitted -->
    <!-- ### 削除箇所 ここから ### -->
    <repository>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <id>terasoluna-gfw-snapshots</id>
        <url>http://repo.terasoluna.org/nexus/content/repositories/terasoluna-gfw-snapshots/</url>
    </repository>
    <!-- ### 削除箇所 ここまで ### -->
    <!-- omitted -->
</repositories>

SNAPSHOTバージョンのライブラリを利用したい場合は、設定を追加します(以下は、sonatype-nexus-snapshotsの設定例)。

<repositories>
    <!-- omitted -->
    <!-- ### 追加箇所 ここから ### -->
    <repository>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
    <!-- ### 追加箇所 ここまで ### -->
    <!-- omitted -->
</repositories>

[Step 2] 依存ライブラリを更新

TERASOLUNA Server Framework for Java (5.x)の共通ライブラリと依存ライブラリを更新してください。

.. tabularcolumns:: |p{0.35\linewidth}|p{0.25\linewidth}|p{0.25\linewidth}|p{0.15\linewidth}|
ライブラリ名 更新前バージョン 更新後バージョン 備考
TERASOLUNA Server Framework for Java (5.x) Common Library 5.2.0.RELEASE 5.3.0.RELEASE  
Spring Framework 4.2.7.RELEASE 4.3.5.RELEASE  
Spring Security 4.0.4.RELEASE 4.1.4.RELEASE  
Hibernate ORM 4.3.11.Final 5.0.11.Final  
Hibernate Commons Annotations 4.0.5.Final 5.0.1.Final  
Javassist 3.18.1-GA 3.20.0-GA  
Java Annotation Indexer 1.1.0.Final 2.0.0.Final  
Spring Data JPA 1.9.4.RELEASE 1.10.6.RELEASE  
Logback 1.1.7 1.1.8  
SLF4J 1.7.21 1.7.22  
Jackson 2.6.7 2.8.5  
Jackson DataType JSR-310 2.6.7 2.8.5  
Apache Commons BeanUtils 1.9.2 1.9.3  
Apache Commons Lang 3.3.2 3.4  
Joda Time 2.8.2 2.9.6  
Jadira Usertype 3.2.0.GA 5.0.0.GA  
Tiles 3.0.5 3.0.7  
Tiles Autotag Core 1.1.0 1.2  
commons-io 2.4 2.5  
classmate 1.1.0 1.3.3  
geronimo - 1.1.1 Added
MyBatis3 3.3.1 3.4.2  
MyBatis3 Spring 1.2.5 1.3.1  
Mybatis TypeHandlers JSR-310 1.0.1 1.0.2  

[手順が必要なケース]

この手順の適用は必須です。

[Step 2-1] Maven Multiple Projectsを利用している場合

この更新手順は、mvn archetype を使用して作成したプロジェクト向けです。

親プロジェクトのpomファイルの version5.3.0.RELEASE に修正してください。

  • ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml)
<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.3.0.RELEASE</version>                    <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

[Step 2-2] Maven Single Projectを利用している場合

この更新手順は、mvn archetype を使用して作成したプロジェクト、又は release site からダウンロードしたプロジェクト向けです。

プロジェクトのpomファイルの version5.3.0.RELEASE にしてください。

  • ($YOUR_SINGLE_PROJECT/pom.xml)
<!-- omitted -->
<parent>
    <groupId>org.terasoluna.gfw</groupId>
    <artifactId>terasoluna-gfw-parent</artifactId>
    <version>5.3.0.RELEASE</version>                    <!-- ### 修正箇所 ### -->
</parent>
<!-- omitted -->

[Step 2-3] Eclipse WTP Projectを利用している場合

この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。

更新手順は、Eclipse WTP Project使用時のライブラリ更新 を参照してください。

[Step 3] Seleniumの依存ライブラリ設定の追加

Spring IO Platform AthensよりSelenium関連アーティファクトがバージョン管理に追加され、Athens-SR2ではバージョン2.53.1が指定されています。

5.2.0のブランクプロジェクトではselenium-java 2.46.0への依存関係を設定しているため、5.2.0のブランクプロジェクトから作成したアプリケーションを5.3.0にアップデートすると、Selenium関連アーティファクトのバージョンが混在する可能性があります。

[手順が必要なケース]

Selenium関連アーティファクトに2.53.1以外のバージョンを指定している場合は修正が必要です。以下はブランクプロジェクトと設定を合わせるための修正例です。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml)
  • ($YOUR_SINGLE_PROJECT/pom.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/pom.xml)

以下の設定を追加してください。

<!-- omitted -->
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-chrome-driver</artifactId>
   <version>${selenium.version}</version>
</dependency>
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-remote-driver</artifactId>
   <version>${selenium.version}</version>
</dependency>
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-api</artifactId>
   <version>${selenium.version}</version>
</dependency>
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-firefox-driver</artifactId>
   <version>${selenium.version}</version>
</dependency>
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-ie-driver</artifactId>
   <version>${selenium.version}</version>
</dependency>
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-safari-driver</artifactId>
   <version>${selenium.version}</version>
</dependency>
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-support</artifactId>
   <version>${selenium.version}</version>
</dependency>
<!-- omitted -->

[備考]

Firefoxのバージョンによっては2.46.0が動作しない場合があります。プロジェクトがサポートするブラウザのバージョンに応じて使用するSeleniumのバージョンを選択してください。

[Step 4] rollbackOnCommitFailureオプションの設定更新

DataSourceTransactionManager使用時にコミットフェーズでエラーが発生した場合、デフォルト設定だとコミットされてしまう可能性があります。

[手順が必要なケース]

DataSourceTransactionManagerを利用している場合、この手順の適用は必須です。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-env/src/main/resources/META-INF/spring/projectName-env.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/projectName-env.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/projectName-env.xml)

rollbackOnCommitFailureプロパティをtrueにする必要があります。

<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
    <property name="rollbackOnCommitFailure" value="true" />    <!-- ### 追加箇所 ### -->
</bean>

[Step 5] セッションスコープのオブジェクト取得時にリクエストパラメータのバインドを防止する

オブジェクトをハンドラメソッドの引数として受け取る際、その引数にリクエストパラメータがバインドされる可能性があります。Spring Framework 4.2以前では、Model型引数から取得することでバインドを防止していましたが、Spring Framework 4.3では、@ModelAttributeアノテーションにbinding属性が追加され、引数にリクエストパラメータをバインドするか否かを指定できるようになりました。

[手順が必要なケース]

この手順の適用は任意です。必要に応じて、次の修正を行ってください。

[修正方法]

引数に付与した@ModelAttributeアノテーションのbinding属性にfalseを指定することで、リクエストパラメータのバインドを防止しつつ、セッションスコープに格納しているオブジェクトをタイプセーフに取得できます。

例)

@RequestMapping(value = "save", method = RequestMethod.POST)
public String save(@Validated({ Wizard1.class, Wizard2.class,
        Wizard3.class }) WizardForm form,
        BindingResult result,
        @ModelAttribute(binding = false) Entity entity,  // 設定箇所
        RedirectAttributes redirectAttributes) {
    // ...
    return "redirect:/wizard/save?complete";
}

[Step 6] AntPathRequestMatcherのリクエストマッチングで大文字と小文字が区別されるようになったことに伴う修正

Spring Security 4.1では、Spring Securityがデフォルトで使用しているAntPathRequestMatcherのパスマッチングの仕様が大文字・小文字を区別するようになりました。

[手順が必要なケース]

Controllerの@RequestMappingに記載されたパスパターンと、spring-security.xml<sec:intercept-url>に記載されたパスパターンの大文字・小文字が一致していない場合、この手順の適用は必須です。

手順の適用が必要となる例)

@RequestMapping(value="/Todo/List")
   public String viewTodoList(){
   //...
}
<sec:http>
    <sec:intercept-url pattern="/todo/list" access="isAuthenticated()" />  <!-- ### パスパターンが小文字になっている ### -->
    <!-- omitted -->
</sec:http>

[修正方法]

Spring MVCのエンドポイントに対してアクセスポリシーを定義する場合は、<sec:intercept-url>タグの pattern属性に指定する値は/Todo/List/Todo/*など大文字・小文字を揃える必要があります。

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-web/src/main/resources/META-INF/spring/spring-security.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/spring-security.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/spring-security.xml)
<sec:http>
    <sec:intercept-url pattern="/Todo/List" access="isAuthenticated()" />  <!-- ### 修正箇所 ### -->
    <!-- omitted -->
</sec:http>

[備考]

pattern属性に***などのワイルドカード指定を含めない場合、拡張子をつけたパターンと、リクエストパスの末尾に/を付けたパターンに対するアクセスポリシーを追加してください。

下記の設定例は、/Todo/Listに対して「ROLE_ADMIN」ロールを持つユーザからのアクセスのみを許可しています。

<sec:http>
    <sec:intercept-url pattern="/Todo/List.*" access="hasRole('ADMIN')" />
    <sec:intercept-url pattern="/Todo/List/" access="hasRole('ADMIN')" />
    <sec:intercept-url pattern="/Todo/List" access="hasRole('ADMIN')" />
    <!-- omitted -->
</sec:http>

[Step 7] 致命的なエラーのハンドリング方法変更に伴う修正

Spring Framework 4.3では、Spring MVCの例外ハンドラ(HandlerExceptionResolver)が致命的なエラー(java.lang.Error及びそのサブクラス)やjava.lang.Throwableがラップされたorg.springframework.web.util.NestedServletExceptionを捕捉するようになりました。この変更に伴い、致命的なエラーが意図せずハンドリングされ、サーブレットコンテナに通知できなくなる可能性があります。

[手順が必要なケース]

致命的エラーをサーブレットコンテナに通知する必要がある場合、この手順の適用は必須です。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-web/src/main/resources/META-INF/spring/spring-mvc.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/spring/spring-mvc.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/spring/spring-mvc.xml)

NestedServletExceptionがハンドリングされないよう、SystemExceptionResolverexcludedExceptionsプロパティにNestedServletExceptionを指定してください。

<bean id="systemExceptionResolver"
    class="org.terasoluna.gfw.web.exception.SystemExceptionResolver">
    <!-- omitted -->
    <property name="excludedExceptions">
        <array>
            <value>org.springframework.web.util.NestedServletException</value>  <!-- ### 追加箇所 ### -->
        </array>
    </property>
    <!-- omitted -->
</bean>

@ExceptionHandlerjava.lang.ExceptionなどのNestedServletExceptionのスーパークラスをハンドリングしている場合、NestedServletExceptionを意図せずハンドリングしてしまうため、NestedServletExceptionをハンドリングして再スローする@ExceptionHandlerメソッドを実装してください。

@ExceptionHandler(NestedServletException.class)
public void handleNestedServletException(NestedServletException e) throws NestedServletException {
    throw e;
}

[Step 8] <mvc:view-controller>の仕様変更に伴う修正

Spring Framework 4.3では、<mvc:view-controller>で定義したパスに、POST等更新系のメソッドでアクセスできなくなりました。

[手順が必要なケース]

POST等更新系のメソッドでアクセスするページや、フォワード元のHTTPメソッドが限定できない場合(エラーページへの遷移など)は、<mvc:view-controller>ではなく、Controllerクラスを実装するよう修正してください。

[修正方法]

<mvc:view-controller>を使用している場合は、Controllerクラスに置き換えてください。

例)

[修正前]

<!-- omitted -->
<mvc:view-controller path="/login" view-name="login/form" />   <!-- ### 削除箇所 ### -->
<!-- omitted -->

[修正後]

Controllerクラスを実装します。

@Controller
@RequestMapping("/login")
public class LoginController {

   @RequestMapping
   public String loginForm() {
       return "login/form";
   }

}

spring-mvc.xmlから、作成したControllerクラスの<mvc:view-controller>の行を削除してください。

[Step 9] チェックボックスの空送信時のバインド値変更に伴う修正

Spring Framework 4.3では、チェックボックスが空のまま送信された場合、nullの代わりに空要素のCollectionオブジェクトがバインドされるようになりました。

[手順が必要なケース]

チェックボックス項目の必須チェックをnullか否かで行っている場合、この手順の適用は必須です。

[修正方法]

チェックボックス項目に対する必須チェックを@NotNullではなく、@Size@NotEmptyを使用するよう変更してください。

例)

【修正前】

public class SampleForm {
    @NotNull
    private List<String> list;
    // ...
}

【修正後】

public class SampleForm {
    @NotEmpty // 修正箇所
    private List<String> list;
    // ...
}

[Step 10] aggressiveLazyLoadingのデフォルト値変更に伴う修正

MyBatis 3.4.2では、aggressiveLazyLoadingのデフォルト値がガイドラインで推奨しているfalseに変更されました。

[手順が必要なケース]

MyBatis 3.4.1以前のaggressiveLazyLoadingのデフォルト値(true)を前提としたアプリケーションであるか否かによって、以下の修正を行ってください。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-domain/src/main/resources/META-INF/mybatis/mybatis-config.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml)

[aggressiveLazyLoadingの設定を省略していた場合(デフォルト値であるtrueを適用していた場合)]

aggressiveLazyLoadingの値をtrueに設定します。

<settings>
    <setting name="aggressiveLazyLoading" value="true"/>  <!-- ### 更新箇所 ### -->
</settings>

[aggressiveLazyLoadingfalseを設定していた場合]

以下の設定を削除できます(この手順の適用は任意です)。

<settings>
    <setting name="aggressiveLazyLoading" value="false"/>  <!-- ### 削除箇所 ### -->
</settings>

[Step 11] BLOB/CLOB用のTypeHandler追加に伴う修正

MyBatis 3.4では、JDBC 4.0サポートのJDBCドライバーであれば、BLOB⇔ InputStream 、CLOB⇔ Reader 変換用のタイプハンドラーがデフォルトで有効になりました。

[手順が必要なケース]

この手順の適用は任意です。独自にTypeHandlerを実装しており、その要件がMyBatisが提供するTypeHandlerで満たせる場合には、次の修正を行ってください。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-domain/src/main/resources/META-INF/mybatis/mybatis-config.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml)

独自実装したTypeHandlerの設定を削除してください。

例)

<typeHandlers>
    <!-- omitted -->
    <typeHandler handler="xxx.yyy.zzz.CustomTypeHandler" /> <!-- ### 削除箇所 ### -->
    <!-- omitted -->
</typeHandlers>

[Step 12] JSR-310のTypeHandler設定を削除

MyBatis 3.4では、JSR-310用のTypeHandlerが自動で登録されるようになったため、JSR-310のTypeHandler設定が不要になりました。

[手順が必要なケース]

この手順の適用は任意です。必要に応じて、以下の修正を行ってください。

[修正方法]

  • ($YOUR_MULTIPLE_PROJECT_ROOT/projectName-domain/src/main/resources/META-INF/mybatis/mybatis-config.xml)
  • ($YOUR_SINGLE_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml)
  • ($YOUR_ECLIPSE_WTP_PROJECT/src/main/resources/META-INF/mybatis/mybatis-config.xml)
<typeHandlers>
    <!-- omitted -->
    <!-- ### 削除箇所 ここから ### -->
    <typeHandler handler="org.apache.ibatis.type.InstantTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.LocalDateTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.LocalDateTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.LocalTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.OffsetDateTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.OffsetTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.ZonedDateTimeTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.YearTypeHandler" />
    <typeHandler handler="org.apache.ibatis.type.MonthTypeHandler" />
    <!-- ### 削除箇所 ここまで ### -->
    <!-- omitted -->
</typeHandlers>

[Step 13] JPA(Hibernate ORM)からPostgreSQLを使用する際にnowait句が付加されない不具合の対応

Hibernate ORM 5.0.Xでは、PostgreSQLでnowaitを使用するよう設定しても、発行するSQLにnowait句が付加されない場合があります(HHH-10797)。

[手順が必要なケース]

下記例のように、JPA(Hibernate ORM)からPostgreSQLに対してnowait句が発行されるよう、タイムアウトに0を指定した悲観ロックを設定し、かつJPQLを使用している場合は、[修正方法]に記載の対策などを検討してください。

@Lock(LockModeType.PESSIMISTIC_WRITE)
@QueryHints(@QueryHint(name = "javax.persistence.lock.timeout", value = "0"))
@Query("SELECT t FROM Todo t WHERE t.id = :id")
Todo findOneForUpdate(@Param("id") Integer id);

[修正方法]

以下のような対策を検討し、プロジェクトの状況に応じて対応要否、対応方法を判断してください。

  • Hibernate ORM 提供のDialectクラスにパッチを適用して使う
  • Hibernate ORM 5.2.1以上へバージョンアップする

5.3.0用のAppendix

Eclipse WTP Project使用時のライブラリ更新

この更新手順は、release site からダウンロードしたEclipse WTPプロジェクト向けです。

Note

凡例

[テーブルヘッダ]
Non : O/R Mapperに非依存のブランクプロジェクト
MB3 : MyBatis3用のブランクプロジェクト
JPA : JPA用のブランクプロジェクト
[備考欄]
* : オペレーション対象

[Step 1]

Eclipse WTP Project of 5.3.0.RELEASE をダウンロードしてください。

[Step 2]

Eclipseが起動している場合、Eclipseを終了します。

[Step 3]

$YOUR_ECLIPSE_WTP_PROJECT/src/main/webapp/WEB-INF/lib のjarファイルを更新(削除して追加)してください。

.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除ファイル 追加ファイル Non MB3 JPA
TERASOLUNA Server Framework for Java (5.x) Common Library terasoluna-gfw-common-5.2.0.RELEASE.jar terasoluna-gfw-common-5.3.0.RELEASE.jar * * *
  terasoluna-gfw-jodatime-5.2.0.RELEASE.jar terasoluna-gfw-jodatime-5.3.0.RELEASE.jar * * *
  terasoluna-gfw-security-web-5.2.0.RELEASE.jar terasoluna-gfw-security-web-5.3.0.RELEASE.jar * * *
  terasoluna-gfw-web-5.2.0.RELEASE.jar terasoluna-gfw-web-5.3.0.RELEASE.jar * * *
  terasoluna-gfw-web-jsp-5.2.0.RELEASE.jar terasoluna-gfw-web-jsp-5.3.0.RELEASE.jar * * *
Spring Framework spring-aop-4.2.7.RELEASE.jar spring-aop-4.3.5.RELEASE.jar * * *
  spring-aspects-4.2.7.RELEASE.jar spring-aspects-4.3.5.RELEASE.jar * * *
  spring-beans-4.2.7.RELEASE.jar spring-beans-4.3.5.RELEASE.jar * * *
  spring-context-4.2.7.RELEASE.jar spring-context-4.3.5.RELEASE.jar * * *
  spring-context-support-4.2.7.RELEASE.jar spring-context-support-4.3.5.RELEASE.jar * * *
  spring-core-4.2.7.RELEASE.jar spring-core-4.3.5.RELEASE.jar * * *
  spring-expression-4.2.7.RELEASE.jar spring-expression-4.3.5.RELEASE.jar * * *
  spring-jdbc-4.2.7.RELEASE.jar spring-jdbc-4.3.5.RELEASE.jar * * *
  spring-orm-4.2.7.RELEASE.jar spring-orm-4.3.5.RELEASE.jar * * *
  spring-tx-4.2.7.RELEASE.jar spring-tx-4.3.5.RELEASE.jar * * *
  spring-web-4.2.7.RELEASE.jar spring-web-4.3.5.RELEASE.jar * * *
  spring-webmvc-4.2.7.RELEASE.jar spring-webmvc-4.3.5.RELEASE.jar * * *
Spring Data Commons spring-data-commons-1.11.4.RELEASE.jar spring-data-commons-1.12.6.RELEASE.jar * * *
Spring Data JPA spring-data-jpa-1.9.4.RELEASE.jar spring-data-jpa-1.10.6.RELEASE.jar *
Spring Security spring-security-acl-4.0.4.RELEASE.jar spring-security-acl-4.1.4.RELEASE.jar * * *
  spring-security-config-4.0.4.RELEASE.jar spring-security-config-4.1.4.RELEASE.jar * * *
  spring-security-core-4.0.4.RELEASE.jar spring-security-core-4.1.4.RELEASE.jar * * *
  spring-security-taglibs-4.0.4.RELEASE.jar spring-security-taglibs-4.1.4.RELEASE.jar * * *
  spring-security-web-4.0.4.RELEASE.jar spring-security-web-4.1.4.RELEASE.jar * * *
Jackson jackson-annotations-2.6.7.jar jackson-annotations-2.8.5.jar * * *
  jackson-core-2.6.7.jar jackson-core-2.8.5.jar * * *
  jackson-databind-2.6.7.jar jackson-databind-2.8.5.jar * * *
  jackson-datatype-joda-2.6.7.jar jackson-datatype-joda-2.8.5.jar * * *
  jackson-datatype-jsr310-2.6.7.jar jackson-datatype-jsr310-2.8.5.jar * * *
SLF4J jcl-over-slf4j-1.7.21.jar jcl-over-slf4j-1.7.22.jar * * *
  slf4j-api-1.7.21.jar slf4j-api-1.7.22.jar * * *
Logback logback-classic-1.1.7.jar logback-classic-1.1.8.jar * * *
  logback-core-1.1.7.jar logback-core-1.1.8.jar * * *
Tomcat tomcat-el-api-8.0.36.jar tomcat-el-api-8.5.6.jar * * *
  tomcat-jsp-api-8.0.36.jar tomcat-jsp-api-8.5.6.jar * * *
  tomcat-servlet-api-8.0.36.jar tomcat-servlet-api-8.5.6.jar * * *
MyBatis mybatis-3.3.1.jar mybatis-3.4.2.jar *
  mybatis-spring-1.2.5.jar mybatis-spring-1.3.1.jar *
  mybatis-typehandlers-jsr310-1.0.1.jar mybatis-typehandlers-jsr310-1.0.2.jar *
Hibernate hibernate-commons-annotations-4.0.5.Final.jar hibernate-commons-annotations-5.0.1.Final.jar *
  hibernate-core-4.3.11.Final.jar hibernate-core-5.0.11.Final.jar *
  hibernate-entitymanager-4.3.11.Final.jar hibernate-entitymanager-5.0.11.Final.jar *
  javassist-3.18.1-GA.jar javassist-3.20.0-GA.jar *
  jandex-1.1.0.Final.jar jandex-2.0.0.Final.jar *
Tiles tiles-api-3.0.5.jar tiles-api-3.0.7.jar * * *
  tiles-core-3.0.5.jar tiles-core-3.0.7.jar * * *
  tiles-jsp-3.0.5.jar tiles-jsp-3.0.7.jar * * *
  tiles-servlet-3.0.5.jar tiles-servlet-3.0.7.jar * * *
  tiles-template-3.0.5.jar tiles-template-3.0.7.jar * * *
Tiles Autotag Core tiles-autotag-core-runtime-1.1.0.jar tiles-autotag-core-runtime-1.2.jar * * *
Joda Time joda-time-2.8.2.jar joda-time-2.9.6.jar * * *
Classmate classmate-1.1.0.jar classmate-1.3.3.jar * * *
Apache Commons BeanUtils commons-beanutils-1.9.2.jar commons-beanutils-1.9.3.jar * * *
Apache Commons IO commons-io-2.4.jar commons-io-2.5.jar * * *
Apache Commons Lang commons-lang3-3.3.2.jar commons-lang3-3.4.jar * * *
Apache Geronimo   geronimo-jta_1.1_spec-1.1.1.jar *
Jboss Logging 3 jboss-logging-annotations-1.2.0.Final.jar   *
Java Transaction API 1.2 jboss-transaction-api_1.2_spec-1.0.0.Final.jar   *
Jadira Usertype usertype.core-3.2.0.GA.jar usertype.core-5.0.0.GA.jar *
  usertype.spi-3.2.0.GA.jar usertype.spi-5.0.0.GA.jar *

[Step 4]

$YOUR_ECLIPSE_WTP_PROJECT/testlib のjarファイルを更新(削除して追加)してください。

.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除ファイル 追加ファイル Non MB3 JPA
Spring TestContext Framework spring-test-4.2.7.RELEASE.jar spring-test-4.3.5.RELEASE.jar * * *
Tomcat Embed El tomcat-embed-el-8.0.36.jar tomcat-embed-el-8.5.6.jar * * *
CSS Parser cssparser-0.9.16.jar cssparser-0.9.18.jar * * *
Gson gson-2.3.1.jar gson-2.7.jar * * *
Html Unit htmlunit-2.18.jar htmlunit-2.21.jar * * *
Jetty jetty-io-9.2.17.v20160517.jar jetty-io-9.3.14.v20161028.jar * * *
  jetty-util-9.2.17.v20160517.jar jetty-util-9.3.14.v20161028.jar * * *
JNA jna-4.1.0.jar jna-4.2.2.jar * * *
nekoHTML nekohtml-1.9.22.jar neko-htmlunit-2.21.jar * * *
Webbit websocket-api-9.2.17.v20160517.jar websocket-api-9.3.14.v20161028.jar * * *
  websocket-client-9.2.17.v20160517.jar websocket-client-9.3.14.v20161028.jar * * *
  websocket-common-9.2.17.v20160517.jar websocket-common-9.3.14.v20161028.jar * * *
Apache Commons Logging commons-logging-1.2.jar   * * *
Hamcrest   hamcrest-library-1.3.jar * * *
Objenesis objenesis-2.1.jar objenesis-2.4.jar * * *
H2 Database Engine h2-1.4.192.jar h2-1.4.193.jar * *

[Step 5]

$YOUR_ECLIPSE_WTP_PROJECT/libsrc のソース格納用jarファイルを更新(削除して追加)してください。

.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除ファイル 追加ファイル Non MB3 JPA
TERASOLUNA Server Framework for Java (5.x) Common Library terasoluna-gfw-common-5.2.0.RELEASE-sources.jar terasoluna-gfw-common-5.3.0.RELEASE-sources.jar * * *
  terasoluna-gfw-jodatime-5.2.0.RELEASE-sources.jar terasoluna-gfw-jodatime-5.3.0.RELEASE-sources.jar * * *
  terasoluna-gfw-security-web-5.2.0.RELEASE-sources.jar terasoluna-gfw-security-web-5.3.0.RELEASE-sources.jar * * *
  terasoluna-gfw-web-5.2.0.RELEASE-sources.jar terasoluna-gfw-web-5.3.0.RELEASE-sources.jar * * *
  terasoluna-gfw-web-jsp-5.2.0.RELEASE-sources.jar terasoluna-gfw-web-jsp-5.3.0.RELEASE-sources.jar * * *
Spring Framework spring-aop-4.2.7.RELEASE-sources.jar spring-aop-4.3.5.RELEASE-sources.jar * * *
  spring-aspects-4.2.7.RELEASE-sources.jar spring-aspects-4.3.5.RELEASE-sources.jar * * *
  spring-beans-4.2.7.RELEASE-sources.jar spring-beans-4.3.5.RELEASE-sources.jar * * *
  spring-context-4.2.7.RELEASE-sources.jar spring-context-4.3.5.RELEASE-sources.jar * * *
  spring-context-support-4.2.7.RELEASE-sources.jar spring-context-support-4.3.5.RELEASE-sources.jar * * *
  spring-core-4.2.7.RELEASE-sources.jar spring-core-4.3.5.RELEASE-sources.jar * * *
  spring-expression-4.2.7.RELEASE-sources.jar spring-expression-4.3.5.RELEASE-sources.jar * * *
  spring-jdbc-4.2.7.RELEASE-sources.jar spring-jdbc-4.3.5.RELEASE-sources.jar * * *
  spring-orm-4.2.7.RELEASE-sources.jar spring-orm-4.3.5.RELEASE-sources.jar * * *
  spring-tx-4.2.7.RELEASE-sources.jar spring-tx-4.3.5.RELEASE-sources.jar * * *
  spring-web-4.2.7.RELEASE-sources.jar spring-web-4.3.5.RELEASE-sources.jar * * *
  spring-webmvc-4.2.7.RELEASE-sources.jar spring-webmvc-4.3.5.RELEASE-sources.jar * * *
Spring Data Commons spring-data-commons-1.11.4.RELEASE-sources.jar spring-data-commons-1.12.6.RELEASE-sources.jar * * *
Spring Data JPA spring-data-jpa-1.9.4.RELEASE-sources.jar spring-data-jpa-1.10.6.RELEASE-sources.jar *
Spring Security spring-security-acl-4.0.4.RELEASE-sources.jar spring-security-acl-4.1.4.RELEASE-sources.jar * * *
  spring-security-config-4.0.4.RELEASE-sources.jar spring-security-config-4.1.4.RELEASE-sources.jar * * *
  spring-security-core-4.0.4.RELEASE-sources.jar spring-security-core-4.1.4.RELEASE-sources.jar * * *
  spring-security-taglibs-4.0.4.RELEASE-sources.jar spring-security-taglibs-4.1.4.RELEASE-sources.jar * * *
  spring-security-web-4.0.4.RELEASE-sources.jar spring-security-web-4.1.4.RELEASE-sources.jar * * *
Spring TestContext Framework spring-test-4.2.7.RELEASE-sources.jar spring-test-4.3.5.RELEASE-sources.jar * * *
Jackson jackson-annotations-2.6.7-sources.jar jackson-annotations-2.8.5-sources.jar * * *
  jackson-core-2.6.7-sources.jar jackson-core-2.8.5-sources.jar * * *
  jackson-databind-2.6.7-sources.jar jackson-databind-2.8.5-sources.jar * * *
  jackson-datatype-joda-2.6.7-sources.jar jackson-datatype-joda-2.8.5-sources.jar * * *
  jackson-datatype-jsr310-2.6.7-sources.jar jackson-datatype-jsr310-2.8.5-sources.jar * * *
CSS Parser cssparser-0.9.16-sources.jar cssparser-0.9.18-sources.jar * * *
Gson gson-2.3.1-sources.jar gson-2.7-sources.jar * * *
HtmlUnit htmlunit-2.18-sources.jar htmlunit-2.21-sources.jar * * *
SLF4J jcl-over-slf4j-1.7.21-sources.jar jcl-over-slf4j-1.7.22-sources.jar * * *
  slf4j-api-1.7.21-sources.jar slf4j-api-1.7.22-sources.jar * * *
Jetty jetty-io-9.2.17.v20160517-sources.jar jetty-io-9.3.14.v20161028-sources.jar * * *
  jetty-util-9.2.17.v20160517-sources.jar jetty-util-9.3.14.v20161028-sources.jar * * *
JNA jna-4.1.0-sources.jar jna-4.2.2-sources.jar * * *
Logback logback-classic-1.1.7-sources.jar logback-classic-1.1.8-sources.jar * * *
  logback-core-1.1.7-sources.jar logback-core-1.1.8-sources.jar * * *
nekoHTML nekohtml-1.9.22-sources.jar neko-htmlunit-2.21-sources.jar * * *
Tomcat tomcat-el-api-8.0.36-sources.jar tomcat-el-api-8.5.6-sources.jar * * *
  tomcat-embed-el-8.0.36-sources.jar tomcat-embed-el-8.5.6-sources.jar * * *
  tomcat-jsp-api-8.0.36-sources.jar tomcat-jsp-api-8.5.6-sources.jar * * *
  tomcat-servlet-api-8.0.36-sources.jar tomcat-servlet-api-8.5.6-sources.jar * * *
WebSocket websocket-api-9.2.17.v20160517-sources.jar websocket-api-9.3.14.v20161028-sources.jar * * *
  websocket-client-9.2.17.v20160517-sources.jar websocket-client-9.3.14.v20161028-sources.jar * * *
  websocket-common-9.2.17.v20160517-sources.jar websocket-common-9.3.14.v20161028-sources.jar * * *
MyBatis mybatis-3.3.1-sources.jar mybatis-3.4.2-sources.jar *
  mybatis-spring-1.2.5-sources.jar mybatis-spring-1.3.1-sources.jar *
  mybatis-typehandlers-jsr310-1.0.1-sources.jar mybatis-typehandlers-jsr310-1.0.2-sources.jar *
Hibernate hibernate-commons-annotations-4.0.5.Final-sources.jar hibernate-commons-annotations-5.0.1.Final-sources.jar *
  hibernate-core-4.3.11.Final-sources.jar hibernate-core-5.0.11.Final-sources.jar *
  hibernate-entitymanager-4.3.11.Final-sources.jar hibernate-entitymanager-5.0.11.Final-sources.jar *
  jandex-1.1.0.Final-sources.jar jandex-2.0.0.Final-sources.jar *
  javassist-3.18.1-GA-sources.jar javassist-3.20.0-GA-sources.jar *
Tiles tiles-api-3.0.5-sources.jar tiles-api-3.0.7-sources.jar * * *
  tiles-core-3.0.5-sources.jar tiles-core-3.0.7-sources.jar * * *
  tiles-jsp-3.0.5-sources.jar tiles-jsp-3.0.7-sources.jar * * *
  tiles-servlet-3.0.5-sources.jar tiles-servlet-3.0.7-sources.jar * * *
  tiles-template-3.0.5-sources.jar tiles-template-3.0.7-sources.jar * * *
Tiles Autotag Core tiles-autotag-core-runtime-1.1.0-sources.jar tiles-autotag-core-runtime-1.2-sources.jar * * *
Classmate classmate-1.1.0-sources.jar classmate-1.3.3-sources.jar * * *
Apache Commons BeanUtils commons-beanutils-1.9.2-sources.jar commons-beanutils-1.9.3-sources.jar * * *
Apache Commons IO commons-io-2.4-sources.jar commons-io-2.5-sources.jar * * *
Apache Commons Lang commons-lang3-3.3.2-sources.jar commons-lang3-3.4-sources.jar * * *
Apache Commons Logging commons-logging-1.2-sources.jar   * * *
Apache Geronimo   geronimo-jta_1.1_spec-1.1.1-sources.jar *
Hamcrest   hamcrest-library-1.3-sources.jar * * *
Jboss Logging 3 jboss-logging-annotations-1.2.0.Final-sources.jar   *
Java Transaction API 1.2 jboss-transaction-api_1.2_spec-1.0.0.Final-sources.jar   *
Joda Time joda-time-2.8.2-sources.jar joda-time-2.9.6-sources.jar * * *
Objenesis objenesis-2.1-sources.jar objenesis-2.4-sources.jar * * *
Jadira Usertype usertype.core-3.2.0.GA-sources.jar usertype.core-5.0.0.GA-sources.jar *
  usertype.spi-3.2.0.GA-sources.jar usertype.spi-5.0.0.GA-sources.jar *
H2 Database Engine h2-1.4.192-sources.jar h2-1.4.193-sources.jar * *

[Step 6]

置換文字列を使用して、参照ライブラリを更新してください。

  • $YOUR_ECLIPSE_WTP_PROJECT/.classpath
  • $YOUR_ECLIPSE_WTP_PROJECT/build.xml
.. tabularcolumns:: |p{0.25\linewidth}|p{0.30\linewidth}|p{0.30\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 置換対象文字 置換文字 Non MB3 JPA
TERASOLUNA Server Framework for Java (5.x) Common Library terasoluna-gfw-common-5.2.0.RELEASE terasoluna-gfw-common-5.3.0.RELEASE * * *
  terasoluna-gfw-jodatime-5.2.0.RELEASE terasoluna-gfw-jodatime-5.3.0.RELEASE * * *
  terasoluna-gfw-security-web-5.2.0.RELEASE terasoluna-gfw-security-web-5.3.0.RELEASE * * *
  terasoluna-gfw-web-5.2.0.RELEASE terasoluna-gfw-web-5.3.0.RELEASE * * *
  terasoluna-gfw-web-jsp-5.2.0.RELEASE terasoluna-gfw-web-jsp-5.3.0.RELEASE * * *
Spring Framework spring-aop-4.2.7.RELEASE spring-aop-4.3.5.RELEASE * * *
  spring-aspects-4.2.7.RELEASE spring-aspects-4.3.5.RELEASE * * *
  spring-beans-4.2.7.RELEASE spring-beans-4.3.5.RELEASE * * *
  spring-context-4.2.7.RELEASE spring-context-4.3.5.RELEASE * * *
  spring-context-support-4.2.7.RELEASE spring-context-support-4.3.5.RELEASE * * *
  spring-core-4.2.7.RELEASE spring-core-4.3.5.RELEASE * * *
  spring-expression-4.2.7.RELEASE spring-expression-4.3.5.RELEASE * * *
  spring-jdbc-4.2.7.RELEASE spring-jdbc-4.3.5.RELEASE * * *
  spring-orm-4.2.7.RELEASE spring-orm-4.3.5.RELEASE * * *
  spring-tx-4.2.7.RELEASE spring-tx-4.3.5.RELEASE * * *
  spring-web-4.2.7.RELEASE spring-web-4.3.5.RELEASE * * *
  spring-webmvc-4.2.7.RELEASE spring-webmvc-4.3.5.RELEASE * * *
Spring Data Commons spring-data-commons-1.11.4.RELEASE spring-data-commons-1.12.6.RELEASE * * *
Spring Data JPA spring-data-jpa-1.9.4.RELEASE spring-data-jpa-1.10.6.RELEASE *
Spring Security spring-security-acl-4.0.4.RELEASE spring-security-acl-4.1.4.RELEASE * * *
  spring-security-config-4.0.4.RELEASE spring-security-config-4.1.4.RELEASE * * *
  spring-security-core-4.0.4.RELEASE spring-security-core-4.1.4.RELEASE * * *
  spring-security-taglibs-4.0.4.RELEASE spring-security-taglibs-4.1.4.RELEASE * * *
  spring-security-web-4.0.4.RELEASE spring-security-web-4.1.4.RELEASE * * *
Spring TestContext Framework spring-test-4.2.7.RELEASE spring-test-4.3.5.RELEASE * * *
Jackson jackson-annotations-2.6.7 jackson-annotations-2.8.5 * * *
  jackson-core-2.6.7 jackson-core-2.8.5 * * *
  jackson-databind-2.6.7 jackson-databind-2.8.5 * * *
  jackson-datatype-joda-2.6.7 jackson-datatype-joda-2.8.5 * * *
  jackson-datatype-jsr310-2.6.7 jackson-datatype-jsr310-2.8.5 * * *
SLF4 jcl-over-slf4j-1.7.21 jcl-over-slf4j-1.7.22 * * *
  slf4j-api-1.7.21 slf4j-api-1.7.22 * * *
CSS Parser cssparser-0.9.16 cssparser-0.9.18 * * *
Gson gson-2.3.1 gson-2.7 * * *
HtmlUnit htmlunit-2.18 htmlunit-2.21 * * *
Jetty jetty-io-9.2.17.v20160517 jetty-io-9.3.14.v20161028 * * *
  jetty-util-9.2.17.v20160517 jetty-util-9.3.14.v20161028 * * *
JNA jna-4.1.0 jna-4.2.2 * * *
Logback logback-classic-1.1.7 logback-classic-1.1.8 * * *
  logback-core-1.1.7 logback-core-1.1.8 * * *
nekoHTML nekohtml-1.9.22 neko-htmlunit-2.21 * * *
Tomcat tomcat-el-api-8.0.36 tomcat-el-api-8.5.6 * * *
  tomcat-embed-el-8.0.36 tomcat-embed-el-8.5.6 * * *
  tomcat-jsp-api-8.0.36 tomcat-jsp-api-8.5.6 * * *
  tomcat-servlet-api-8.0.36 tomcat-servlet-api-8.5.6 * * *
WebSocket websocket-api-9.2.17.v20160517 websocket-api-9.3.14.v20161028 * * *
  websocket-client-9.2.17.v20160517 websocket-client-9.3.14.v20161028 * * *
  websocket-common-9.2.17.v20160517 websocket-common-9.3.14.v20161028 * * *
MyBatis mybatis-3.3.1 mybatis-3.4.2 *
  mybatis-spring-1.2.5 mybatis-spring-1.3.1 *
  mybatis-typehandlers-jsr310-1.0.1 mybatis-typehandlers-jsr310-1.0.2 *
Hibernate hibernate-commons-annotations-4.0.5.Final hibernate-commons-annotations-5.0.1.Final *
  hibernate-core-4.3.11.Final hibernate-core-5.0.11.Final *
  hibernate-entitymanager-4.3.11.Final hibernate-entitymanager-5.0.11.Final *
  jandex-1.1.0.Final jandex-2.0.0.Final *
  javassist-3.18.1-GA javassist-3.20.0-GA *
Tiles tiles-api-3.0.5 tiles-api-3.0.7 * * *
  tiles-core-3.0.5 tiles-core-3.0.7 * * *
  tiles-jsp-3.0.5 tiles-jsp-3.0.7 * * *
  tiles-servlet-3.0.5 tiles-servlet-3.0.7 * * *
  tiles-template-3.0.5 tiles-template-3.0.7 * * *
Tiles Autotag Core tiles-autotag-core-runtime-1.1.0 tiles-autotag-core-runtime-1.2 * * *
Classmate classmate-1.1.0 classmate-1.3.3 * * *
Apache Commons BeanUtils commons-beanutils-1.9.2 commons-beanutils-1.9.3 * * *
Apache Commons IO commons-io-2.4 commons-io-2.5 * * *
Apache Commons Lang commons-lang3-3.3.2 commons-lang3-3.4 * * *
Joda Time joda-time-2.8.2 joda-time-2.9.6 * * *
Objenesis objenesis-2.1 objenesis-2.4 * * *
Jadira Usertype usertype.core-3.2.0.GA usertype.core-5.0.0.GA *
  usertype.spi-3.2.0.GA usertype.spi-5.0.0.GA *
H2 Database Engine h2-1.4.192 h2-1.4.193 * *

[Step 7]

Eclipse WTPプロジェクトの設定から参照ライブラリ(以下のjarファイル)を削除してください。

  • $YOUR_ECLIPSE_WTP_PROJECT/.classpath
  • $YOUR_ECLIPSE_WTP_PROJECT/build.xml
.. tabularcolumns:: |p{0.30\linewidth}|p{0.55\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 削除対象jarファイルのプレフィックス Non MB3 JPA
Apache Commons Logging commons-logging-1.2 * * *
Jboss Logging 3 jboss-logging-annotations-1.2.0.Final *
Java Transaction API 1.2 jboss-transaction-api_1.2_spec-1.0.0.Final *

[修正方法]

.classpath

<!-- ### 以下のクラスパスエントリーの削除が必要 ### -->

<!-- omitted -->

<classpathentry kind="lib"
    path="testlib/commons-logging-1.2.jar"
    sourcepath="libsrc/commons-logging-1.2-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jboss-logging-annotations-1.2.0.Final.jar"
    sourcepath="libsrc/jboss-logging-annotations-1.2.0.Final-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jboss-transaction-api_1.2_spec-1.0.0.Final.jar"
    sourcepath="libsrc/jboss-transaction-api_1.2_spec-1.0.0.Final-sources.jar" />

build.xml

<!-- ### 以下のクラスパスエントリーの削除が必要 ### -->

<path id="build.classpath">
    <!-- omitted -->
    <pathelement location="${testlib.dir}/commons-logging-1.2.jar"/>
    <pathelement location="${lib.dir}/jboss-logging-annotations-1.2.0.Final.jar"/>
    <pathelement location="${lib.dir}/jboss-transaction-api_1.2_spec-1.0.0.Final.jar"/>
    <!-- omitted -->
</path>

[Step 8]

Eclipse WTPプロジェクトの設定に参照ライブラリ(jarファイル以下)を追加してください。

  • $YOUR_ECLIPSE_WTP_PROJECT/.classpath
  • $YOUR_ECLIPSE_WTP_PROJECT/build.xml
.. tabularcolumns:: |p{0.30\linewidth}|p{0.55\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|p{0.05\linewidth}|
ライブラリ名 追加対象jarファイルのプレフィックス Non MB3 JPA
Apache Geronimo geronimo-jta_1.1_spec-1.1.1 *
HtmlUnit htmlunit-2.21 * * *

[修正方法]

.classpath

<!-- ### 以下のクラスパスエントリーの追加が必要 ### -->

<!-- omitted -->

 <classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar"
    sourcepath="libsrc/geronimo-jta_1.1_spec-1.1.1-sources.jar" />

 <classpathentry kind="lib"
    path="testlib/htmlunit-2.21.jar"
    sourcepath="libsrc/htmlunit-2.21-sources.jar" />

<!-- omitted -->

build.xml

<!-- ### 以下のクラスパスエントリーの追加が必要 ### -->

<path id="build.classpath">
    <!-- omitted -->
    <pathelement location="${lib.dir}/geronimo-jta_1.1_spec-1.1.1.jar"/>
    <pathelement location="${testlib.dir}/htmlunit-2.21.jar"/>
    <!-- omitted -->
</path>
⚠️ **GitHub.com Fallback** ⚠️