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

5.5.1から5.6.0への移行ガイド

.. only:: html

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

5.6.0での主な変更点

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

  • Spring Boot Dependenciesを2.2.4へ更新
  • Spring Frameworkを5.2.3へ更新
  • Spring Securityを5.2.1へ更新
  • MyBatisを3.5.3へ更新
  • Hibernate ORMを5.4.10へ更新
  • 共通ライブラリの仕様を一部変更
  • ブランクプロジェクトの変更

Spring Boot Dependenciesを2.2.4へ更新

Spring Boot Dependencies 2.2.4.RELEASEへ更新しました。

Spring Frameworkを5.2.3へ更新

Spring Framework 5.2.3.RELEASEへ更新しました。

Spring Securityを5.2.1へ更新

Spring Security 5.2.1.RELEASEへ更新しました。

MyBatisを3.5.3へ更新

MyBatis 3.5.3へ更新しました。この更新にあわせて、MyBatis Springを2.0.3へ更新しました。

Hibernate ORMを5.4.10へ更新

Hibernate ORM 5.4.10へ更新しました。

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

共通ライブラリの一部仕様の変更と機能の追加を行いました。

  • [#920] Provide default validation message in ContributorValidationMessages.properties
  • [#926] [Spring Data Commons 2.2] Remove deprecations introduced in Lovelace
  • [#928] Enable to set default class attribute to page item (inner element).
  • [#933] Upgrade of spring-security-oauth2, mybatis3, dozer and other.
  • [#947] Remove log4jdbc-remix
  • [#953] Manage dependency Bouncy Castle Provider.
  • [#963] Upgrade to Spring Boot 2.2.4.RELEASE
  • [#965] Fixed warning about using deprecated methods of JDK11
  • [#980] hibernate-core duplicate references to activation-api.

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

  • [#846] f:query can not successfully take over properties of type Boolean
  • [#979] No need to exclude xml-apis from hibernate-core.

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

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

5.5.1から5.6.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
依存ライブラリを更新 Required Required Required

[共通ライブラリ]

.. 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
f:query() でクエリ文字列に変換したBoolean型の値が意図しない値にバインディングされるバグの修正に伴う対応 Required by case Required by case Required by case
Bouncy Castleへの依存関係を共通ライブラリで管理することに伴う対応 Required by case Required by case Required by case
Apache POIバージョンアップに伴う対応 Required by case Required by case Required by case
共通ライブラリが提供するBean Validation制約アノテーションのデフォルトエラーメッセージを共通ライブラリで提供することに伴う対応 Optional Optional Optional
ページネーションタグ(<t:pagination>)の改善(レイアウトを制御するためのパラメータの追加)に伴う対応 Optional Optional Optional

[Blank project]

.. 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
log4jdbc-remixのサポートを終了することに伴う対応 Required Required Required
Spring Frameworkが提供するBean定義のXMLスキーマ定義ファイルがセキュアなhttpsアドレスで管理されるようになったことに伴う対応 Required Required Required
Oracle JDBC DriverがMavenセントラルリポジトリで公開されたことに伴う対応 Required by case Required by case Required by case
Bean定義ファイル(xxx-codelist.xml)にutilネームスペースを追加 Optional Optional Optional
リクエストマッピング情報のログレベル変更に伴う対応 Optional Optional Optional
Sonartype Nexusスナップショットリポジトリの参照をやめたことに伴う対応 Optional Optional Optional

[Spring Boot]

.. 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
JavaMailからJakarta Mailにバージョンアップされたことに伴う対応 Required by case Required by case Required by case
Hamcrestバージョンアップに伴う対応 Optional Optional Optional

[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
Spring Data 2.2 で非推奨APIが削除されたことに伴う対応 Required by case Required by case Required by case
AsyncRestTemplate にスレッドプールを設定する方法の修正 Required by case Required by case Required by case

[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
セキュリティヘッダが上書き(追加)される問題が修正されたことに伴う対応 Required by case Required by case Required by case
イベントリスナクラスを格納するパッケージの明示に伴う対応 Optional Optional Optional
@EventListener が処理する認証イベントの指定方法の変更に伴う対応 Optional Optional Optional
Encryptors#queryableText メソッドが非推奨になったことに伴う対応 Optional Optional Optional

[Dozer]

.. 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
JSR-310 Date and Time APIで使用できるはずの日時パターン文字が使用できない不具合が解消したことに伴う対応 Optional Optional Optional

[Jakarta Mail (JavaMail)]

.. 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
JavaMailでマルチバイト文字を使用する際の不具合が解消されたことに伴う対応 Optional Optional Optional

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

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.5.1.RELEASE 5.6.0.RELEASE  
Spring Framework 5.1.4.RELEASE 5.2.3.RELEASE  
Spring Data 2.1.4.RELEASE 2.2.4.RELEASE  
Spring Security 5.1.3.RELEASE 5.2.1.RELEASE  
Spring Security OAuth2 2.2.4.RELEASE 2.4.0.RELEASE  
MyBatis3 3.5.0 3.5.3  
MyBatis Spring 2.0.0 2.0.3  
Hibernate ORM 5.3.7.Final 5.4.10.Final  
Hibernate Validator 6.0.14.Final 6.0.18.Final  
Jackson 2.9.8 2.10.2  
Dozer 6.4.1 6.5.0  
Joda Time 2.10.1 2.10.5  
Jakarta Mail (JavaMail) 1.6.2 1.6.4  

[手順が必要なケース]

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

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

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

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

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

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

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

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

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

[Step 2] f:query() でクエリ文字列に変換したBoolean型の値が意図しない値にバインディングされるバグの修正に伴う対応

f:query() によりオブジェクトをクエリ文字列に変換してリクエストパラメータとして引き継いだ場合、Boolean型プロパティの null 値がSpring MVCのバインディング処理で異なる値に復元される不具合がありました。

このため、Boolean型プロパティの変換ルールを変更いたしました。以下に、 selected プロパティを引き継ぐケースを例示します。

.. tabularcolumns:: |p{0.15\linewidth}|p{0.20\linewidth}|p{0.25\linewidth}|p{0.20\linewidth}|
  変更前の値 クエリ文字列 復元される値
変更前 null _selected= false
変更後 null selected= null

f:query() のクエリ文字列への変換ルールの詳細は、f:query() 関数仕様を参照してください。

[手順が必要なケース]

以下の条件をすべて満たす場合、本修正の影響の有無を確認し、必要に応じて修正を行ってください。

  • f:query() を用いたクエリ文字列への変換の対象に、Boolean型のプロパティが含まれている
  • Boolean型のプロパティが null を持つ可能性がある

[Step 3] Bouncy Castleへの依存関係を共通ライブラリで管理することに伴う対応

5.6.0より、共通ライブラリでorg.bouncycastle:bcprov-jdk15onへの依存関係を管理するよう変更しました。

これにより、パスワードをハッシュ化するためにSCryptPasswordEncoderや5.6.0からサポートするArgon2PasswordEncoderを使用する際に、bcprov-jdk15onのバージョンをアプリケーションで独自に管理する必要がなくなりました。

[手順が必要なケース]

以下のケースに当てはまる場合、必要に応じて修正を行ってください。

  • bcprov-jdk15onへの依存関係をアプリケーションで管理している場合

[修正方法]

POMファイルの<dependencyManagement>からbcprov-jdk15onの依存関係管理の定義を削除してください。 ライブラリのバージョンを<properties>で管理している場合、同様に削除してください。

  • pom.xml
<dependencyManagement>
    <dependencies>
        <!-- ### 削除箇所開始 ### -->
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>${bouncycastle.version}</version>
        </dependency>
        <!-- ### 削除箇所終了 ### -->
    </dependencies>
</dependencyManagement>

<properties>
    <!-- ### 削除箇所開始 ### -->
    <bouncycastle.version>x.x.x</bouncycastle.version>
    <!-- ### 削除箇所終了 ### -->
</properties>

なお、共通ライブラリに定義されたbcprov-jdk15onのバージョンを変更したい場合、 上記のコード例を参考にしつつ<properties>bouncycastle.versionプロパティを定義し、任意のバージョンを指定してください。 5.6.0の共通ライブラリで管理するバージョンは1.64となります。

[Step 4] Apache POIバージョンアップに伴う対応

5.5.1で利用していたApache POI 3.17に CVE-2019-12415の脆弱性が発見されたため、4.1.1にバージョンアップしました。
ブランクプロジェクトを利用されている場合は、自動的にバージョンアップが適用されます。

これにより、主に開発ガイドラインの以下に準じて実装された機能が影響を受けます。

  • 4.10.2.2. Excelファイルのダウンロード

    Apache POIのバージョンアップにより、一部の非推奨APIが削除されています。これにより、今まで正常に動作していたクラスがコンパイルエラーとなる可能性があります。

  • 10.2.2.1.1.2. Spring Test DBUnitを利用したテスト

    開発ガイドラインでは、Spring Test DBUnitを利用してExcel形式のデータ定義ファイルを利用した事前条件の構築やアサーションを解説しています。
    Spring Test DBUnit 1.3.0が利用するDBUnit 2.5.4は、Apache POI 3.xに依存しており、Apache POI 4.xを利用した場合は前述の非推奨APIの削除により実行時エラーとなることが確認されています。

    なお、2020年6月現在最新のDBUnit 2.7.0はApache POI 3.xに依存しています。 DBUnit 2.7.1でApache POI 4.xに対応することが予定されておりますが、Spring Test DBUnitは個人開発のライブラリで既に開発を停止しているとみられることから、正式に対応される見通しはついていません。

[手順が必要なケース]

以下のケースに当てはまる場合、必要に応じて修正を行ってください。

  • Apache POIを利用した機能(Excelファイルのダウンロード等)を実装している場合

以下のケースに当てはまる場合、修正を行ってください。

  • Spring Test DBUnitでExcel形式のデータ定義ファイルを利用している場合

[修正方法①] Apache POIを利用した機能(Excelファイルのダウンロード等)を実装している場合

コンパイルエラーとなる箇所を特定し、別のAPIを利用するよう修正してください。
コンパイルエラーとならず動作に問題がない場合は必ずしも修正の必要はありませんが、Apache POI 4.2で削除される予定の非推奨APIもあるため、ご留意ください。

非推奨APIについては以下を参考にしてください。

[修正方法②] Spring Test DBUnitでExcel形式のデータ定義ファイルを利用している場合

以下の条件を考慮し、適切な対応を選択してください。

  • Spring Test DBUnit以外でApache POIを利用していない(する予定もない)場合

    Apache POIを3.xにダウングレードしてください。 以下の例では、5.5.1で利用してるApache POI 3.17にダウングレードしています。

    • pom.xml
    <properties>
        <!-- ### 追加箇所開始 ### -->
        <poi.version>3.17</poi.version>
        <!-- ### 追加箇所終了 ### -->
    </properties>

    なお、前述の通りApache POI 3.17は脆弱性を含むため、テスト以外では使用しないよう留意してください。

  • Spring Test DBUnit以外でApache POIを利用している(する予定がある)場合

    Excel形式のデータ定義ファイルを利用することをやめ、CSV形式など他の形式の利用を検討してください。
    または、10.2.2.1.1.1. Spring Test標準機能のみを利用したテストへの変更をご検討ください。

[Step 5] 共通ライブラリが提供するBean Validation制約アノテーションのデフォルトエラーメッセージを共通ライブラリで提供するようになったことに伴う対応

5.6.0より、共通ライブラリが提供するBean Validation制約アノテーションのデフォルトエラーメッセージは共通ライブラリで提供するようになりました。

これにより、ブランクプロジェクトのValidationMessages.propertiesで定義していたデフォルトエラーメッセージは不要になります。

[手順が必要なケース]

この手順の適用は任意です。ValidationMessages.propertiesで定義していたデフォルトエラーメッセージを 変更していない 場合、必要に応じて修正を行ってください。

[修正方法]

ValidationMessages.propertiesから共通ライブラリが提供するBean Validation制約アノテーションのデフォルトエラーメッセージを削除します。

修正方法は、terasolunaorg/terasoluna-gfw-web-blank#412もしくはterasolunaorg/terasoluna-gfw-web-multi-blank#467を参考にしてください。

[備考①]

共通ライブラリが提供するBean Validation制約アノテーションのデフォルトエラーメッセージはHibernate Validatorの機能を利用して提供しております。

このため、Hibernate Validator以外の実装を利用している場合、デフォルトメッセージが有効にならないことにご注意ください。

[備考②]

デフォルトエラーメッセージは以下のファイルで定義されております。

[Step 6] ページネーションタグ(<t:pagination>)の改善(レイアウトを制御するためのパラメータの追加)に伴う対応

共通ライブラリが提供するページネーションタグは、 4.4.1.3.2.2. ページネーションリンクのHTML構造のようなHTML構造をとります。

「Inner Element」のスタイルクラスを指定するための「Inner Element Class」は、 Note:「Inner Element Class」の設定値についてのように、現在のページ位置によって3つの値( disabledactive 、指定なし)のいずれかになります。

5.5.1までは、「 disabled 」及び「 active 」についてはページネーションタグのパラメータに値を指定することで任意の値に変更することが可能でしたが、「指定なし」については変更することが出来なかったため、スタイルクラスの指定は出来ませんでした。

「指定なし」の「Inner Element Class」にスタイルクラスを指定するため、5.6.0より innerElementClass パラメータを追加しました。

[手順が必要なケース]

この手順の適用は任意です。以下のケースに当てはまる場合、必要に応じて修正を行ってください。

  • 「指定なし」の「Inner Element Class」に値を指定するために独自の実装を行っている

なお、 innerElementClass パラメータを利用しない場合、従来通りスタイルクラスは付与されないため、既存の実装に影響はございません。

[修正方法]

独自に行った実装を削除し、 innerElementClass パラメータを利用します。

5.6.0の開発ガイドライン 4.4.1.3.2.3. JSPタブライブラリのパラメータについてを参考に修正してください。

[Step 7] log4jdbc-remixのサポートを終了することに伴う対応

5.6.0よりlog4jdbc-remixのサポートを終了し、ブランクプロジェクトから設定を削除し、開発ガイドラインから解説を削除いたしました。 log4jdbc-remixは主にデバッグ向けのサポート機能であり、主に開発生産性に影響します。

サポート終了の理由は、MyBatis 3.5.1よりJDBC 4.2に準拠したJDBCが必須となったことによるものです。 これより古いバージョンに準拠したJDBCを利用した場合、メソッドシグネチャ不整合による実行時エラーが発生する可能性があります。 log4jdbc-remixはJDBC 4.2に準拠しておらず、また既にメンテナンスが終了しているとみられ準拠する見込みがないことから、サポートを終了することといたしました。

このサポート終了に伴い、5.6.0のブランクプロジェクトではO/R Mapperのログ出力設定の見直しを行いました。
ブランクプロジェクトで出力していたlog4jdbc-remixのログとO/R Mapperのログの対応は以下の通りです。
.. tabularcolumns:: |p{0.25\linewidth}|p{0.15\linewidth}|p{0.15\linewidth}|p{0.15\linewidth}|p{0.30\linewidth}|
ログ内容 log4jdbc-remix MyBatis 3 JPA(Hibernate) 備考
発行したSQL DEBUG(*) DEBUG(*) DEBUG+TRACE MyBatis 3およびJPA(Hibernate)ではPrepared StatementとParameterを別々のログとして出力
処理されたレコード件数 なし DEBUG(*) なし MyBatis 3のみ
SELECTされたレコード内容 INFO(*) TRACE TRACE  

(*)は5.5.1のブランクプロジェクトで出力されていたログ

[手順が必要なケース]

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

[修正方法]

アプリケーションからlog4jdbc-remixの設定を排除するため、以下を実施してください。

  1. log4jdbc.properties を削除してください

  2. [projectName]-env.xml からlog4jdbcの設定を削除し、Bean IDを変更してください

    <!-- ### 削除箇所 開始 ### -->
    <bean id="realDataSource"
    <!-- ### 削除箇所 終了 ### -->
    <!-- ### 追加箇所 開始 ### -->
    <bean id="dataSource"
    <!-- ### 追加箇所 終了 ### -->
        class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${database.driverClassName}" />
        <property name="url" value="${database.url}" />
        <property name="username" value="${database.username}" />
        <property name="password" value="${database.password}" />
        <property name="defaultAutoCommit" value="false" />
        <property name="maxTotal" value="${cp.maxActive}" />
        <property name="maxIdle" value="${cp.maxIdle}" />
        <property name="minIdle" value="${cp.minIdle}" />
        <property name="maxWaitMillis" value="${cp.maxWait}" />
    </bean>
    
    <!-- ### 削除箇所 開始 ### -->
    <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
        <constructor-arg index="0" ref="realDataSource" />
    </bean>
    <!-- ### 削除箇所 終了 ### -->
    
  3. logback.xml からlog4jdbc-remixのログ出力設定を削除してください

    <!-- ### 削除箇所 開始 ### -->
    <logger name="jdbc.sqltiming">
        <level value="debug" />
    </logger>
    
    <!-- only for development -->
    <logger name="jdbc.resultsettable">
        <level value="debug" />
    </logger>
    <!-- ### 削除箇所 終了 ### -->
log4jdbc-remixを代替するため、任意で logback.xml にO/R Mapperのログ出力設定を追加してください。
なお、本番環境向けにはログレベルをINFOレベル以上に変更することを推奨します。
  1. MyBatis 3を利用している場合

    <!-- Application Loggers -->
    <logger name="xxxxxx.yyyyyy.zzzzzz">
        <level value="debug" />
    </logger>
    
    <!-- ### 追加箇所 開始 ### -->
    <logger name="xxxxxx.yyyyyy.zzzzzz.domain.repository">
        <level value="trace" />
    </logger>
    <!-- ### 追加箇所 終了 ### -->

    xxxxxx.yyyyyy.zzzzz にはプロジェクトのグループIDが入ります。

  2. JPA(Hibernate)を利用している場合

    <!-- ### 追加箇所 開始 ### -->
    <logger name="org.hibernate.SQL" additivity="true">
        <level value="debug" />
    </logger>
    <logger name="org.hibernate.type">
        <level value="trace" />
    </logger>
    <!-- ### 追加箇所 終了 ### -->
  3. 共通ライブラリで提供するDateFactoryやSequencerを利用している場合

    <!-- ### 追加箇所 開始 ### -->
    <logger name="org.springframework.jdbc.core.JdbcTemplate">
        <level value="trace" />
    </logger>
    <!-- ### 追加箇所 終了 ### -->

[Step 8] Spring Frameworkが提供するBean定義のXMLスキーマ定義ファイルがセキュアなhttpsアドレスで管理されるようになったことに伴う対応

Spring Framework 5.1.6より、Spring Frameworkが提供するBean定義のXMLスキーマ定義ファイルがセキュアなHTTPSサーバで管理されるようになりました。 これに伴い、ブランクプロジェクトのBean定義ファイルで参照するURLを https://~ に変更しました。

なお、XMLスキーマ定義ファイルは通常Webで公開されているファイルを参照しますが、 オフライン環境などでアクセスできない場合はJarファイルに含まれるファイルを参照し、スキーマ定義を解決します。

Webで公開されているファイルはHTTP、HTTPSどちらでも参照することができますが、 Jarファイルに含まれるファイルはSpring Securityのみ、HTTPSでしか参照できません。 これはSpring Securityの不具合によるもので、Spring Security 5.2.2以降で修正(spring-projects/spring-security#7623)されます。

XMLスキーマ定義ファイルが解決できない場合、アプリケーションの起動に失敗します。 本フレームワークでは、動作時の問題を防止するため一律HTTPSで参照することを推奨いたします。

[手順が必要なケース]

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

[修正方法]

XMLスキーマをhttpsアドレスで参照します。

修正方法は、terasolunaorg/terasoluna-gfw-web-blank#413及びterasolunaorg/terasoluna-gfw-web-multi-blank#468を参考にしてください。

[Step 9] Oracle JDBC DriverがMavenセントラルリポジトリで公開されたことに伴う対応

Oracle Developers : Oracle JDBC drivers on Maven Centralでアナウンスされているように、Oracle JDBC DriverがMavenセントラルリポジトリで公開されました。 Mavenセントラルリポジトリでの公開に伴い、MavenのグループIDが変更されています。

これまではOracleのHPからJarファイルをダウンロードして利用するか、Oracleが公開するMavenリポジトリから取得して利用する必要がありましたが、今後は基本的にセントラルリポジトリを利用することを推奨します。 特にOracleが公開するMavenリポジトリについては、継続して運用はされるものの、今後新しいJDBC Driverがアップロードされることはないようです。

これに伴い、ブランクプロジェクトではOracle JDBC DriverをMavenセントラルリポジトリから取得するよう、依存関係の定義を変更しています。

[手順が必要なケース]

この手順の適用は任意です。以下のケースに当てはまる場合、必要に応じて修正を行ってください。

  • Oralce JDBC Driverを利用している場合

[修正方法]

アプリケーションのルートPOMファイルの <dependencyManagement> 配下を以下のように変更する。

  • pom.xml
<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- ### 削除箇所開始 ### -->
            <groupId>com.oracle.jdbc</groupId>
            <!-- ### 削除箇所終了 ### -->
            <!-- ### 追加箇所開始 ### -->
            <groupId>com.oracle.ojdbc</groupId>
            <!-- ### 追加箇所終了 ### -->
            <artifactId>ojdbc8</artifactId>
            <version>${ojdbc.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

アプリケーションの各モジュールPOMファイルの <dependencies> 配下を以下のように変更する。

  • pom.xml
<dependencies>
    <dependency>
        <!-- ### 削除箇所開始 ### -->
        <groupId>com.oracle.jdbc</groupId>
        <!-- ### 削除箇所終了 ### -->
        <!-- ### 追加箇所開始 ### -->
        <groupId>com.oracle.ojdbc</groupId>
        <!-- ### 追加箇所終了 ### -->
        <artifactId>ojdbc8</artifactId>
    </dependency>
</dependencies>

なお、これまでOracle JDBC Driverを開発プロジェクトのNexusにデプロイしていた場合や、 アプリケーションのPOMファイルにApache Maven Install Pluginの設定を行いローカル環境にインストールしていた場合は、 任意で削除等を行ってください。

[補足①] ojdbc8とojdbc10について

Oracle JDBC Driverにはojdbc8とojdbc10があり、以下のような違いがあります。

  • ojdbc8

    JDK 8でコンパイルされ、JDK 8、JDK 10、JDK 11で動作保証されているType 4 Driver

  • ojdbc10

    JDK 10でコンパイルされ、JDK 11で動作保証されているType 4 Driver
    19.3.0.0以降のDriverが提供されている

[補足②] 2020/06/30時点での最新情報

Mavenセントラルリポジトリで公開されているOracle JDBC DriverのグループIDが変更され、 最新は Oracle Developers : All in and New GroupIds — Oracle JDBC drivers on Maven Centralでアナウンスされているように、 com.oracle.database.jdbc となります。

ブランクプロジェクトおよび本Migration Guideでは開発期間の都合上1世代前のグループIDを使用しますが、最新に合わせることを推奨します。

[Step 10] Bean定義ファイル(xxx-codelist.xml)にutilネームスペースを追加

開発ガイドラインのBean定義例に則って SimpleMapCodeList 等のBeanを定義しようとすると、5.5.1以前のブランクプロジェクトのBean定義ファイル(xxx-codelist.xml)には util ネームスペースの宣言がないため、文法エラーや起動時エラーとなっていました。

5.6.0よりBean定義しやすいように、ブランクプロジェクトのBean定義ファイル(xxx-codelist.xml)に util ネームスペースをあらかじめ宣言しておくよう修正しました。

[手順が必要なケース]

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

[修正方法]

Bean定義ファイル(xxx-codelist.xml)に util ネームスペースを追加します。

修正方法は、terasolunaorg/terasoluna-gfw-web-blank#425もしくはterasolunaorg/terasoluna-gfw-web-multi-blank#477を参考にしてください。

[Step 11] リクエストマッピング情報のログレベル変更に伴う対応

Spring Framework 5.1.0におけるログ出力の見直しに伴い、アプリケーション起動時にログに出力されるリクエストマッピング情報が改善されました。 これにより、当該ログに出力される情報が整理されるとともに、ログレベルがINFOからTRACEに修正され、本番環境向けの設定では起動時に出力されるログが削減されます。

ブランクプロジェクトはデバッグ向けの設定を基本としており、本変更に伴いデフォルト設定で当該TRACEログを出力するよう変更いたしました。

[手順が必要なケース]

この手順は任意ですが、デバッグ効率向上のため実施することを推奨します。

[修正方法]

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping に対してTRACEレベルのログを出力するように設定します。

修正方法は、terasolunaorg/terasoluna-gfw-web-blank#426もしくはterasolunaorg/terasoluna-gfw-web-multi-blank#479を参考にしてください。

なお、多くのリクエストマッピングを設定している場合は出力されるログも多くなりますので、本番環境向けにはログレベルをDEBUG以上に変更することを推奨します。

[Step 12] Sonartype Nexusスナップショットリポジトリの参照をやめたことに伴う対応

Sonartype Nexusスナップショットリポジトリは、Mavenセントラルリポジトリで管理されるライブラリのスナップショット(開発中)のバージョンを管理するリポジトリです。

ブランクプロジェクトにおいては、MavenSingle Projectでは5.4.1まで、MavenMultiple Projectsでは5.5.1まではスナップショットリポジトリを参照できるよう定義していましたが、 開発中のライブラリを利用してしまうことによるトラブルを防止するため、参照の定義を削除いたしました。

開発プロジェクトで必要と判断する場合のみ、スナップショットリポジトリへの参照を定義し直してください。

[手順が必要なケース]

この手順の適用は任意ですが、前述のトラブル防止のために実施することを推奨します。

[修正方法]

利用しているブランクプロジェクトごとに、以下のPOMファイルから以下の定義を削除します。

  • ($YOUR_MULTIPLE_PROJECT_ROOT/pom.xml) ※5.5.1
  • ($YOUR_SINGLE_PROJECT/pom.xml) ※5.4.1
<!-- omitted -->
<repositories>
    <repository>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

[Step 13] JavaMailからJakarta Mailにバージョンアップされたことに伴う対応

Spring Boot 2.2.4.RELEASEでは、JavaMailの後継としてJakarta Mailがサポートされます。

[手順が必要なケース]

以下のケースと一致する場合は、次の修正を行ってください。

  • アプリケーションでJavaMailを利用して、メールの送受信を行っている場合

[修正方法]

アプリケーションのPOMファイルの<dependency>のJavaMailへの依存関係を以下のように変更してください。

  • pom.xml
<dependencies>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <!-- ### 削除箇所開始 ### -->
        <artifactId>javax.mail</artifactId>
        <!-- ### 削除箇所終了 ### -->
        <!-- ### 追加箇所開始 ### -->
        <artifactId>jakarta.mail</artifactId>
        <!-- ### 追加箇所終了 ### -->
    </dependency>

    <!- omitted -->

</dependencies>

なお、フェイクサーバとしてGreenMailを利用している場合、GreenMailはJavaMailに依存しています。

クラスパス内にJakarta MailとJavaMailが存在するとバージョン違いによる不整合が発生することが懸念されるため、JavaMailへの依存関係を除外することを推奨します。 詳細は開発ガイドラインの8.1.4.5. GreenMailを利用したテストを参照してください。

[Step 14] Hamcrestバージョンアップに伴う対応

Spring Bootのバージョンアップに伴い、利用するHamcrestが1.3から2.1にバージョンアップされました。

Hamcrest 2.xでは、従来のブランクプロジェクトや開発ガイドラインで利用していたhamcrest-core及びhamcrest-libraryにあたるモジュールがhamcrestに統合されました。

後方互換性のためhamcrest-core及びhamcrest-libraryも引き続き利用することが出来ますが、これらのライブラリにはクラスは含まれておらず、実態としてはすべてhamcrestを参照する形となっております。

[手順が必要なケース]

この手順の適用は任意です。以下のケースに当てはまる場合は、修正をご検討ください。

  • POMファイルの依存関係にhamcrest-xxx(hamcrest-core、hamcrest-libraryなど)を定義している

[修正方法]

フレームワークスタックに従いテスティングフレームワークとしてJUnit4を利用している場合、hamcrest-core及びhamcrest-libraryの依存関係を削除します。 JUnit4はhamcrest-coreに依存しており、前述の後方互換性によりhamcrestが解決されます。

  • pom.xml
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
    <!-- ### 削除箇所開始 ### -->
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
    </dependency>
    <!-- ### 削除箇所終了 ### -->

    <!- omitted -->

</dependencies>

独自にテスティングフレームワークとしてJUnit4以外を利用している場合、hamcrest-core及びhamcrest-libraryの依存関係を削除してhamcrestに置き換えます。 JUnit4以外はサポートしていないため、コード例は省略します。

[Step 15] Spring Data 2.2 で非推奨APIが削除されたことに伴う対応

Spring Data 2.2より、ページネーションに関わるクラスから非推奨APIが削除されました。

なお、TERASOLUNA Server Framework for Javaの開発ガイドラインでは利用していませんが、ページネーションに関わるクラス以外からも、従来非推奨であったクラスやAPIが削除されています。

詳細は、DATACMNS-1496及びspring-data-commonsプロジェクトのcommitを参照してください。

[手順が必要なケース]

以下の例のように、削除されたAPIを利用している場合は対応が必要です。

[修正方法]

5.6.0の開発ガイドライン 4.4.3.1. PageableHandlerMethodArgumentResolver のプロパティ値についてを参考に、factory-methodを利用してstaticな PageRequest#ofSort#by メソッドによりBeanを生成するように変更します。

独自に PageRequestSort クラスのコンストラクタを使用している場合も同様です。

[Step 16] AsyncRestTemplate にスレッドプールを設定する方法の修正

5.6.0の開発ガイドラインより、 5.2.3.3.1. AsyncRestTemplateのbean定義のNote「AsyncRestTemplateのカスタマイズ方法」の実装例を修正しました。

5.5.1までの開発ガイドラインではThreadPoolTaskExecutormaxPoolSizeプロパティに100を指定することで、同時実行可能な最大スレッド数が100になると説明していましたが、 実際にはmaxPoolSizeプロパティを設定しただけでは1スレッドのままとなり、並列処理が行われないことが分かりました。 非同期リクエストが実行中の場合、後続のリクエストはキューイングされ待ち状態となります。

詳細はNote「AsyncRestTemplateのカスタマイズ方法」をご確認ください。

[手順が必要なケース]

以下のケースと一致する場合は、次の修正を行ってください。

  • 開発ガイドラインを参考にして、ThreadPoolTaskExecutormaxPoolSizeプロパティのみ指定している場合

[修正方法]

5.6.0の開発ガイドライン 5.2.3.3.1. AsyncRestTemplateのbean定義のNote「AsyncRestTemplateのカスタマイズ方法」を参考に適切なプロパティを設定してください。

[Step 17] セキュリティヘッダが上書き(追加)される問題が修正されたことに伴う対応

Spring Security 5.2.1より、ControllerやViewで書き込まれたヘッダが、Spring Securityによって上書き(追加)されないよう変更されました。なお、Cache-Controlヘッダは従来から上書き(追加)されないよう実装されており、今回の変更はCache-Controlヘッダ以外に影響します。

従来はController等とSpring Securityで書き込むヘッダが重複している場合、ブラウザによってどちらか、もしくは両方が有効になっていました。 現バージョンより重複しなくなったため、ブラウザによってはヘッダ重複時から挙動が変わる可能性があります。

[手順が必要なケース]

Spring Securityがサポートするセキュリティヘッダ(Cache-Controlヘッダ以外)で以下の条件をすべて満たす場合、修正が必要です。

  • Spring Securityによるヘッダ書き込みを有効にしている
  • ControllerやView等で独自に同じヘッダを書き込んでいる
  • 従来のバージョンでは、ブラウザでの挙動としてSpring Securityで書き込まれたヘッダが有効となっていた

[修正方法]

ControllerやView等で独自に同じヘッダを書き込んでいるコードを削除してください。

[Step 18] イベントリスナクラスを格納するパッケージの明示に伴う対応

開発ガイドラインの9.2.2.6.3. イベントリスナの作成にて、イベントリスナクラスを格納するパッケージを明示するように変更を行いました。

[手順が必要なケース]

この手順の適用は任意です。イベントリスナクラスを実装・利用している場合、必要に応じて修正を行ってください。

[修正方法]

開発ガイドラインの9.2.2.6.3. イベントリスナの作成を参考に、イベントリスナクラスを格納するパッケージを見直してください。

なお、イベントリスナクラスを格納するパッケージの変更に当たっては、従来、コンポーネントスキャン機能を利用せずBean定義していた場合、Bean定義ファイルからの削除や @Component アノテーションの付与が必要になるためご注意ください。

[Step 19] @EventListener が処理する認証イベントの指定方法の変更に伴う対応

開発ガイドラインの9.2.2.6.3. イベントリスナの作成にて、認証イベントの指定方法を改善いたしました。

従来、 @EventListener が処理する認証イベントは引数で指定していましたが、 @ExceptionHandler が処理する例外クラスの指定方法と合わせ、属性値で指定するように変更を行いました。

[手順が必要なケース]

この手順の適用は任意です。以下のケースに当てはまる場合、必要に応じて修正を行ってください。

  • イベントリスナについて、開発ガイドラインに準拠した実装を行っている。

なお、属性値で指定する場合、複数のイベントを一つのイベントリスナで処理することが可能になります。 これにより、同一の処理内容にも関わらず、イベントごとに複数のイベントリスナを実装していた場合、一つのイベントリスナで実装することが可能になります。

[修正方法]

以下の例を参考に @EventListener アノテーションの属性値に認証イベントクラスを指定します。

【修正前】

@EventListener
public void handleBadCredentials(
    AuthenticationFailureBadCredentialsEvent event) {
    // omitted
}

【修正後】

@EventListener(AuthenticationFailureBadCredentialsEvent.class)
public void handleBadCredentials(
    AuthenticationFailureBadCredentialsEvent event) {
    // omitted
}

複数のイベントを一つのイベントリスナで処理する場合、以下のように修正します。

引数には、認証イベントの親クラス AbstractAuthenticationEventAbstractAuthenticationFailureEvent を指定します。

【修正前】

@EventListener
public void handleBadCredentials(
    AuthenticationFailureBadCredentialsEvent event) {
    // omitted
}

@EventListener
public void handleDisabled(
    AuthenticationFailureDisabledEvent event) {
    // omitted
}

【修正後】

@EventListener({AuthenticationFailureBadCredentialsEvent.class, AuthenticationFailureDisabledEvent.class})
public void handleAuthenticationFailureEvents(
    AbstractAuthenticationFailureEvent event) {
    // omitted
}

[備考]

開発ガイドラインでは取り上げていませんが、認証イベント以外のイベントも @EventListener アノテーションの属性値に指定することが可能です。

ただし、アノテーションの属性値にはクラスリテラルのみ指定可能なため、ジェネリクスを指定することができません。 イベントオブジェクトにジェネリクスを利用する場合、今まで通りメソッド引数のみで指定してください。

[Step 20] Encryptors#queryableText メソッドが非推奨になったことに伴う対応

CVE-2020-5408によりSpring Securityの org.springframework.security.crypto.encrypt.Encryptors#queryableText メソッドが非推奨となるため、 開発ガイドラインの 9.8.2.1.1. 文字列の暗号化から該当する解説を削除いたしました。

Encryptors#queryableText メソッドによる暗号化では結果が毎回同一となるため、特に暗号化したテキストをユーザが参照可能な方式を採用している場合、 辞書攻撃を行うことで暗号化前の平文やソルトを推測されてしまう脆弱性が存在します。

[手順が必要なケース]

この手順は任意ですが、 Encryptors#queryableText メソッドを利用している場合は以下の修正方法をご確認のうえ、実装を見直すことを推奨します。

[修正方法]

以下のポイントに従い、暗号化したテキストを扱う方式の見直しを検討してください。

  • 暗号化方式の推測を難しくする

    Encryptors#queryableText メソッドではなく Encryptors#text メソッドを利用し、暗号化した結果が毎回変わるように実装することを検討してください。 入力値と暗号化したテキストの比較を行いたい場合は、復号したうえで比較する必要があります。

    また、暗号化に使用するソルトに固定値を用いている場合は、ランダム性を加えることを検討してください。

    もし、暗号化したテキストを復号する必要がない場合は 9.2.2.5. パスワードのハッシュ化の利用を検討してください。

  • 暗号化したテキストがユーザに漏洩するのを防止する

    暗号化したテキストは可能な限り堅牢なデータストア(データベース等)のみに格納するようにしてください。 アプリケーション内に保持する場合であっても、可能な限りメモリ上に残さないこと、外部(ユーザや他システム)から参照できないことを考慮し、必要最小限の箇所のみで保持することを検討してください。

    特に暗号化したテキストを外部と共有する場合は、必ず Encryptors#text メソッドを利用した暗号化に変更することを推奨いたします。

[Step 21] JSR-310 Date and Time APIで使用できるはずの日時パターン文字が使用できない不具合が解消したことに伴う対応

Dozer 6.4.1 で発生していたJSR-310の日付・時刻オブジェクトから文字列への変換においてJSR-310で使用できるはずの日時パターン文字が使用できない不具合が、Dozer 6.5.0で解消されました。

文字列とJSR-310の日付・時刻オブジェクトのマッピングにおいて、マッピング定義XMLファイルのdate-formatjava.time.format.DateTimeFormatter ではなくjava.text.SimpleDateFormat の日時パターン文字しか使用できなかった事象で、 例えば以下のようなパターンが指定できませんでした。

  • uuuu :西暦での年(代替としてyyyy を利用すると、暦をつけた場合に年が変わってしまう)
  • D :その年の何日目か(別の方法で計算する必要が生じる)

それぞれの日時パターン文字については以下を参照ください。

[手順が必要なケース]

この手順の適用は任意ですが、以下のケースに当てはまる場合は、次の修正を行うことを推奨します。

  • 上記の不具合を回避するために独自にカスタムコンバーターを作成していた場合

[修正方法]

開発ガイドラインの 7.7.3.1. カスタムコンバーターの作成 で作成した カスタムコンバーター、及び作成したカスタムコンバーターをマッピングに利用するための定義を削除してください。

Dozer標準のマッピングで意図した通りのマッピングができることを、テスト等実施してご確認ください。

[Step 22] JavaMailでマルチバイト文字を使用する際の不具合が解消されたことに伴う対応

5.5.1までの開発ガイドラインにおける8.1.4.2. JavaMailでマルチバイト文字を使用する際の注意点で解説していた不具合が解消されていたことを確認しました。

送信するメールの本文の終端がマルチバイト文字で終わっていると、終端に余計な文字(「?」や「w)」等)が出力される不具合があり、 終端に半角文字や改行コード(CRLF)を追加することで回避するよう解説していましたが、この事象はJavaMail 1.4.4で既に解消されていました。

[手順が必要なケース]

この手順は以下の場合に該当しますが、手順を実施するかどうかは任意です。

  • メール本文の終端に、意図的に半角文字や改行コード(CRLF)を追加している場合

[修正方法]

メール本文の終端に半角文字や改行コード(CRLF)を追加しているロジックを削除します。

5.6.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.6.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.5.1.RELEASE.jar terasoluna-gfw-common-5.6.0.RELEASE.jar * * *
  terasoluna-gfw-jodatime-5.5.1.RELEASE.jar terasoluna-gfw-jodatime-5.6.0.RELEASE.jar * * *
  terasoluna-gfw-security-web-5.5.1.RELEASE.jar terasoluna-gfw-security-web-5.6.0.RELEASE.jar * * *
  terasoluna-gfw-web-5.5.1.RELEASE.jar terasoluna-gfw-web-5.6.0.RELEASE.jar * * *
  terasoluna-gfw-web-jsp-5.5.1.RELEASE.jar terasoluna-gfw-web-jsp-5.6.0.RELEASE.jar * * *
Spring Framework spring-aop-5.1.4.RELEASE.jar spring-aop-5.2.3.RELEASE.jar * * *
  spring-aspects-5.1.4.RELEASE.jar spring-aspects-5.2.3.RELEASE.jar * * *
  spring-beans-5.1.4.RELEASE.jar spring-beans-5.2.3.RELEASE.jar * * *
  spring-context-5.1.4.RELEASE.jar spring-context-5.2.3.RELEASE.jar * * *
  spring-context-support-5.1.4.RELEASE.jar spring-context-support-5.2.3.RELEASE.jar * * *
  spring-core-5.1.4.RELEASE.jar spring-core-5.2.3.RELEASE.jar * * *
  spring-expression-5.1.4.RELEASE.jar spring-expression-5.2.3.RELEASE.jar * * *
  spring-jcl-5.1.4.RELEASE.jar spring-jcl-5.2.3.RELEASE.jar * * *
  spring-jdbc-5.1.4.RELEASE.jar spring-jdbc-5.2.3.RELEASE.jar * * *
  spring-orm-5.1.4.RELEASE.jar spring-orm-5.2.3.RELEASE.jar * * *
  spring-tx-5.1.4.RELEASE.jar spring-tx-5.2.3.RELEASE.jar * * *
  spring-web-5.1.4.RELEASE.jar spring-web-5.2.3.RELEASE.jar * * *
  spring-webmvc-5.1.4.RELEASE.jar spring-webmvc-5.2.3.RELEASE.jar * * *
Spring Data Commons spring-data-commons-2.1.4.RELEASE.jar spring-data-commons-2.2.4.RELEASE.jar * * *
Spring Data JPA spring-data-jpa-2.1.4.RELEASE.jar spring-data-jpa-2.2.4.RELEASE.jar *
Spring Security spring-security-acl-5.1.3.RELEASE.jar spring-security-acl-5.2.1.RELEASE.jar * * *
  spring-security-config-5.1.3.RELEASE.jar spring-security-config-5.2.1.RELEASE.jar * * *
  spring-security-core-5.1.3.RELEASE.jar spring-security-core-5.2.1.RELEASE.jar * * *
  spring-security-taglibs-5.1.3.RELEASE.jar spring-security-taglibs-5.2.1.RELEASE.jar * * *
  spring-security-web-5.1.3.RELEASE.jar spring-security-web-5.2.1.RELEASE.jar * * *
MyBatis3 mybatis-3.5.0.jar mybatis-3.5.3.jar *
MyBatis Spring mybatis-spring-2.0.0.jar mybatis-spring-2.0.3.jar *
Hibernate ORM hibernate-commons-annotations-5.0.4.Final.jar hibernate-commons-annotations-5.1.0.Final.jar *
  hibernate-core-5.3.7.Final.jar hibernate-core-5.4.10.Final.jar *
  hibernate-entitymanager-5.3.7.Final.jar hibernate-entitymanager-5.4.10.Final.jar *
H2 Database Engine - h2-1.4.200.jar * *
  jandex-2.0.5.Final.jar jandex-2.1.1.Final.jar *
  javassist-3.23.1-GA.jar javassist-3.24.0-GA.jar *
AspectJ aspectjrt-1.9.2.jar aspectjrt-1.9.5.jar * * *
  aspectjweaver-1.9.2.jar aspectjweaver-1.9.5.jar * * *
Log4Jdbc Remix log4jdbc-remix-0.2.7.jar - * * *
SLF4J slf4j-api-1.7.25.jar slf4j-api-1.7.30.jar * * *
  jcl-over-slf4j-1.7.25.jar jcl-over-slf4j-1.7.30.jar * * *
Jackson jackson-annotations-2.9.0.jar jackson-annotations-2.10.2.jar * * *
  jackson-core-2.9.8.jar jackson-core-2.10.2.jar * * *
  jackson-databind-2.9.8.jar jackson-databind-2.10.2.jar * * *
  jackson-datatype-joda-2.9.8.jar jackson-datatype-joda-2.10.2.jar * * *
  jackson-datatype-jsr310-2.9.8.jar jackson-datatype-jsr310-2.10.2.jar * * *
  classmate-1.4.0.jar classmate-1.5.1.jar * * *
Hibernate Validator hibernate-validator-6.0.14.Final.jar hibernate-validator-6.0.18.Final.jar * * *
Dozer dozer-core-6.4.1.jar dozer-core-6.5.0.jar * * *
  dozer-spring4-6.4.1.jar dozer-spring4-6.5.0.jar * * *
Jboss Logging jboss-logging-3.3.2.Final.jar jboss-logging-3.4.1.Final.jar * * *
  commons-dbcp2-2.5.0.jar commons-dbcp2-2.7.0.jar * * *
  commons-lang3-3.8.1.jar commons-lang3-3.9.jar * * *
  commons-pool2-2.6.0.jar commons-pool2-2.7.0.jar * * *
Apache Commons BeanUtils commons-beanutils-1.9.3.jar commons-beanutils-1.9.4.jar * * *
Joda Time joda-time-2.10.1.jar joda-time-2.10.5.jar * * *
Tomcat tomcat-el-api-9.0.10.jar - * * *
  tomcat-jsp-api-9.0.10.jar - * * *
  tomcat-servlet-api-9.0.10.jar - * * *
Byte Buddy byte-buddy-1.9.7.jar byte-buddy-1.10.6.jar *
Javax javax.activation-api-1.2.0.jar - * * *
Jakarta - jakarta.activation-api-1.2.1.jar *
  - jakarta.xml.bind-api-2.3.2.jar *
TXW2 Runtime - txw2-2.3.2.jar *
JAXB jaxb-api-2.3.1.jar - * * *
  - jaxb-runtime-2.3.2.jar *
FastInfoset - FastInfoset-1.2.16.jar *
Extended StAX API - stax-ex-1.8.1.jar *
Istack Common Utility Code Runtime - istack-commons-runtime-3.0.8.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-5.1.4.RELEASE.jar spring-test-5.2.3.RELEASE.jar * * *
Apache Commons Codec commons-codec-1.11.jar - * * *
Tomcat - tomcat-el-api-9.0.30.jar * * *
  - tomcat-jsp-api-9.0.30.jar * * *
  - tomcat-servlet-api-9.0.30.jar * * *
Tomcat Embed El tomcat-embed-el-9.0.10.jar tomcat-embed-el-9.0.30.jar * * *
Mockito Core mockito-core-2.23.4.jar mockito-core-3.1.0.jar * * *
Byte Buddy byte-buddy-1.9.7.jar byte-buddy-1.10.6.jar * *
  byte-buddy-agent-1.9.7.jar byte-buddy-agent-1.10.6.jar * * *
Hamcrest - hamcrest-2.1.jar * * *
  hamcrest-core-1.3.jar hamcrest-core-2.1.jar * * *
  hamcrest-library-1.3.jar - * * *
Apache HTTPClient httpclient-4.5.6.jar - * * *
  httpcore-4.4.10.jar - * * *
Selenium selenium-api-3.14.0.jar selenium-api-3.141.59.jar * * *
  selenium-chrome-driver-3.14.0.jar selenium-chrome-driver-3.141.59.jar * * *
  selenium-edge-driver-3.14.0.jar selenium-edge-driver-3.141.59.jar * * *
  selenium-firefox-driver-3.14.0.jar selenium-firefox-driver-3.141.59.jar * * *
  selenium-ie-driver-3.14.0.jar selenium-ie-driver-3.141.59.jar * * *
  selenium-java-3.14.0.jar selenium-java-3.141.59.jar * * *
  selenium-opera-driver-3.14.0.jar selenium-opera-driver-3.141.59.jar * * *
  selenium-remote-driver-3.14.0.jar selenium-remote-driver-3.141.59.jar * * *
  selenium-safari-driver-3.14.0.jar selenium-safari-driver-3.141.59.jar * * *
  selenium-support-3.14.0.jar selenium-support-3.141.59.jar * * *
Squareup okhttp-3.10.0.jar okhttp-3.14.6.jar * * *
  okio-1.14.1.jar okio-1.14.0.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.5.1.RELEASE-sources.jar terasoluna-gfw-common-5.6.0.RELEASE-sources.jar * * *
  terasoluna-gfw-jodatime-5.5.1.RELEASE-sources.jar terasoluna-gfw-jodatime-5.6.0.RELEASE-sources.jar * * *
  terasoluna-gfw-security-web-5.5.1.RELEASE-sources.jar terasoluna-gfw-security-web-5.6.0.RELEASE-sources.jar * * *
  terasoluna-gfw-web-5.5.1.RELEASE-sources.jar terasoluna-gfw-web-5.6.0.RELEASE-sources.jar * * *
  terasoluna-gfw-web-jsp-5.5.1.RELEASE-sources.jar terasoluna-gfw-web-jsp-5.6.0.RELEASE-sources.jar * * *
Spring Framework spring-aop-5.1.4.RELEASE-sources.jar spring-aop-5.2.3.RELEASE-sources.jar * * *
  spring-aspects-5.1.4.RELEASE-sources.jar spring-aspects-5.2.3.RELEASE-sources.jar * * *
  spring-beans-5.1.4.RELEASE-sources.jar spring-beans-5.2.3.RELEASE-sources.jar * * *
  spring-context-5.1.4.RELEASE-sources.jar spring-context-5.2.3.RELEASE-sources.jar * * *
  spring-context-support-5.1.4.RELEASE-sources.jar spring-context-support-5.2.3.RELEASE-sources.jar * * *
  spring-core-5.1.4.RELEASE-sources.jar spring-core-5.2.3.RELEASE-sources.jar * * *
  spring-expression-5.1.4.RELEASE-sources.jar spring-expression-5.2.3.RELEASE-sources.jar * * *
  spring-jcl-5.1.4.RELEASE-sources.jar spring-jcl-5.2.3.RELEASE-sources.jar * * *
  spring-jdbc-5.1.4.RELEASE-sources.jar spring-jdbc-5.2.3.RELEASE-sources.jar * * *
  spring-orm-5.1.4.RELEASE-sources.jar spring-orm-5.2.3.RELEASE-sources.jar * * *
  spring-tx-5.1.4.RELEASE-sources.jar spring-tx-5.2.3.RELEASE-sources.jar * * *
  spring-web-5.1.4.RELEASE-sources.jar spring-web-5.2.3.RELEASE-sources.jar * * *
  spring-webmvc-5.1.4.RELEASE-sources.jar spring-webmvc-5.2.3.RELEASE-sources.jar * * *
Spring Data Commons spring-data-commons-2.1.4.RELEASE-sources.jar spring-data-commons-2.2.4.RELEASE-sources.jar * * *
Spring Data JPA spring-data-jpa-2.1.4.RELEASE-sources.jar spring-data-jpa-2.2.4.RELEASE-sources.jar *
Spring Security spring-security-acl-5.1.3.RELEASE-sources.jar spring-security-acl-5.2.1.RELEASE-sources.jar * * *
  spring-security-config-5.1.3.RELEASE-sources.jar spring-security-config-5.2.1.RELEASE-sources.jar * * *
  spring-security-core-5.1.3.RELEASE-sources.jar spring-security-core-5.2.1.RELEASE-sources.jar * * *
  spring-security-taglibs-5.1.3.RELEASE-sources.jar spring-security-taglibs-5.2.1.RELEASE-sources.jar * * *
  spring-security-web-5.1.3.RELEASE-sources.jar spring-security-web-5.2.1.RELEASE-sources.jar * * *
MyBatis3 mybatis-3.5.0-sources.jar mybatis-3.5.3-sources.jar *
MyBatis Spring mybatis-spring-2.0.0-sources.jar mybatis-spring-2.0.3-sources.jar *
Hibernate ORM hibernate-commons-annotations-5.0.4.Final-sources.jar hibernate-commons-annotations-5.1.0.Final-sources.jar *
  hibernate-core-5.3.7.Final-sources.jar hibernate-core-5.4.10.Final-sources.jar *
  hibernate-entitymanager-5.3.7.Final-sources.jar hibernate-entitymanager-5.4.10.Final-sources.jar *
  jandex-2.0.5.Final-sources.jar jandex-2.1.1.Final-sources.jar *
  javassist-3.23.1-GA-sources.jar javassist-3.24.0-GA-sources.jar *
H2 Database Engine h2-1.4.197-sources.jar h2-1.4.200-sources.jar * *
AspectJ aspectjrt-1.9.2-sources.jar aspectjrt-1.9.5-sources.jar * * *
  aspectjweaver-1.9.2-sources.jar aspectjweaver-1.9.5-sources.jar * * *
Log4Jdbc Remix log4jdbc-remix-0.2.7-sources.jar - * * *
SLF4J slf4j-api-1.7.25-sources.jar slf4j-api-1.7.30-sources.jar * * *
  jcl-over-slf4j-1.7.25-sources.jar jcl-over-slf4j-1.7.30-sources.jar * * *
Jackson jackson-annotations-2.9.0-sources.jar jackson-annotations-2.10.2-sources.jar * * *
  jackson-core-2.9.8-sources.jar jackson-core-2.10.2-sources.jar * * *
  jackson-databind-2.9.8-sources.jar jackson-databind-2.10.2-sources.jar * * *
  jackson-datatype-joda-2.9.8-sources.jar jackson-datatype-joda-2.10.2-sources.jar * * *
  jackson-datatype-jsr310-2.9.8-sources.jar jackson-datatype-jsr310-2.10.2-sources.jar * * *
  classmate-1.4.0-sources.jar classmate-1.5.1-sources.jar * * *
Hibernate Validator hibernate-validator-6.0.14.Final-sources.jar hibernate-validator-6.0.18.Final-sources.jar * * *
Dozer dozer-core-6.4.1-sources.jar dozer-core-6.5.0-sources.jar * * *
  dozer-spring4-6.4.1-sources.jar dozer-spring4-6.5.0-sources.jar * * *
Jboss Logging jboss-logging-3.3.2.Final-sources.jar jboss-logging-3.4.1.Final-sources.jar * * *
  commons-dbcp2-2.5.0-sources.jar commons-dbcp2-2.7.0-sources.jar * * *
  commons-lang3-3.8.1-sources.jar commons-lang3-3.9-sources.jar * * *
  commons-pool2-2.6.0-sources.jar commons-pool2-2.7.0-sources.jar * * *
Apache Commons BeanUtils commons-beanutils-1.9.3-sources.jar commons-beanutils-1.9.4-sources.jar * * *
Joda Time joda-time-2.10.1-sources.jar joda-time-2.10.5-sources.jar * * *
Javax javax.activation-api-1.2.0-sources.jar - * * *
Jakarta - jakarta.activation-api-1.2.1-sources.jar *
  - jakarta.xml.bind-api-2.3.2-sources.jar *
TXW2 Runtime - txw2-2.3.2-sources.jar *
JAXB jaxb-api-2.3.1-sources.jar - * * *
  - jaxb-runtime-2.3.2-sources.jar *
FastInfoset - FastInfoset-1.2.16-sources.jar *
Extended StAX API - stax-ex-1.8.1-sources.jar *
Istack Common Utility Code Runtime - istack-commons-runtime-3.0.8-sources.jar *
Spring TestContext Framework spring-test-5.1.4.RELEASE-sources.jar spring-test-5.2.3.RELEASE-sources.jar * * *
Apache Commons Codec commons-codec-1.11-sources.jar - * * *
Tomcat tomcat-el-api-9.0.10-sources.jar tomcat-el-api-9.0.30-sources.jar * * *
  tomcat-jsp-api-9.0.10-sources.jar tomcat-jsp-api-9.0.30-sources.jar * * *
  tomcat-servlet-api-9.0.10-sources.jar tomcat-servlet-api-9.0.30-sources.jar * * *
Tomcat Embed El tomcat-embed-el-9.0.10-sources.jar tomcat-embed-el-9.0.30-sources.jar * * *
Mockito Core mockito-core-2.23.4-sources.jar mockito-core-3.1.0-sources.jar * * *
Byte Buddy byte-buddy-1.9.7-sources.jar byte-buddy-1.10.6-sources.jar * * *
  byte-buddy-agent-1.9.7-sources.jar byte-buddy-agent-1.10.6-sources.jar * * *
Hamcrest - hamcrest-2.1-sources.jar * * *
  hamcrest-core-1.3-sources.jar hamcrest-core-2.1-sources.jar * * *
  hamcrest-library-1.3-sources.jar - * * *
Apache HTTPClient httpclient-4.5.6-sources.jar - * * *
  httpcore-4.4.10-sources.jar - * * *
Selenium selenium-api-3.14.0-sources.jar selenium-api-3.141.59-sources.jar * * *
  selenium-chrome-driver-3.14.0-sources.jar selenium-chrome-driver-3.141.59-sources.jar * * *
  selenium-edge-driver-3.14.0-sources.jar selenium-edge-driver-3.141.59-sources.jar * * *
  selenium-firefox-driver-3.14.0-sources.jar selenium-firefox-driver-3.141.59-sources.jar * * *
  selenium-ie-driver-3.14.0-sources.jar selenium-ie-driver-3.141.59-sources.jar * * *
  selenium-java-3.14.0-sources.jar selenium-java-3.141.59-sources.jar * * *
  selenium-opera-driver-3.14.0-sources.jar selenium-opera-driver-3.141.59-sources.jar * * *
  selenium-remote-driver-3.14.0-sources.jar selenium-remote-driver-3.141.59-sources.jar * * *
  selenium-safari-driver-3.14.0-sources.jar selenium-safari-driver-3.141.59-sources.jar * * *
  selenium-support-3.14.0-sources.jar selenium-support-3.141.59-sources.jar * * *
Squareup okhttp-3.10.0-sources.jar okhttp-3.14.6-sources.jar * * *
  okio-1.14.1-sources.jar okio-1.14.0-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.5.1.RELEASE terasoluna-gfw-common-5.6.0.RELEASE * * *
  terasoluna-gfw-jodatime-5.5.1.RELEASE terasoluna-gfw-jodatime-5.6.0.RELEASE * * *
  terasoluna-gfw-security-web-5.5.1.RELEASE terasoluna-gfw-security-web-5.6.0.RELEASE * * *
  terasoluna-gfw-web-5.5.1.RELEASE terasoluna-gfw-web-5.6.0.RELEASE * * *
  terasoluna-gfw-web-jsp-5.5.1.RELEASE terasoluna-gfw-web-jsp-5.6.0.RELEASE * * *
Spring Framework spring-aop-5.1.4.RELEASE spring-aop-5.2.3.RELEASE * * *
  spring-aspects-5.1.4.RELEASE spring-aspects-5.2.3.RELEASE * * *
  spring-beans-5.1.4.RELEASE spring-beans-5.2.3.RELEASE * * *
  spring-context-5.1.4.RELEASE spring-context-5.2.3.RELEASE * * *
  spring-context-support-5.1.4.RELEASE spring-context-support-5.2.3.RELEASE * * *
  spring-core-5.1.4.RELEASE spring-core-5.2.3.RELEASE * * *
  spring-expression-5.1.4.RELEASE spring-expression-5.2.3.RELEASE * * *
  spring-jcl-5.1.4.RELEASE spring-jcl-5.2.3.RELEASE * * *
  spring-jdbc-5.1.4.RELEASE spring-jdbc-5.2.3.RELEASE * * *
  spring-orm-5.1.4.RELEASE spring-orm-5.2.3.RELEASE * * *
  spring-tx-5.1.4.RELEASE spring-tx-5.2.3.RELEASE * * *
  spring-web-5.1.4.RELEASE spring-web-5.2.3.RELEASE * * *
  spring-webmvc-5.1.4.RELEASE spring-webmvc-5.2.3.RELEASE * * *
Spring Data Commons spring-data-commons-2.1.4.RELEASE spring-data-commons-2.2.4.RELEASE * * *
Spring Data JPA spring-data-jpa-2.1.4.RELEASE spring-data-jpa-2.2.4.RELEASE *
Spring Security spring-security-acl-5.1.3.RELEASE spring-security-acl-5.2.1.RELEASE * * *
  spring-security-config-5.1.3.RELEASE spring-security-config-5.2.1.RELEASE * * *
  spring-security-core-5.1.3.RELEASE spring-security-core-5.2.1.RELEASE * * *
  spring-security-taglibs-5.1.3.RELEASE spring-security-taglibs-5.2.1.RELEASE * * *
  spring-security-web-5.1.3.RELEASE spring-security-web-5.2.1.RELEASE * * *
MyBatis3 mybatis-3.5.0 mybatis-3.5.3 *
MyBatis Spring mybatis-spring-2.0.0 mybatis-spring-2.0.3 *
Hibernate ORM hibernate-commons-annotations-5.0.4.Final hibernate-commons-annotations-5.1.0.Final *
  hibernate-core-5.3.7.Final hibernate-core-5.4.10.Final *
  hibernate-entitymanager-5.3.7.Final hibernate-entitymanager-5.4.10.Final *
  jandex-2.0.5.Final jandex-2.1.1.Final *
  javassist-3.23.1-GA javassist-3.24.0-GA *
AspectJ aspectjrt-1.9.2 aspectjrt-1.9.5 * * *
  aspectjweaver-1.9.2 aspectjweaver-1.9.5 * * *
SLF4J slf4j-api-1.7.25 slf4j-api-1.7.30 * * *
  jcl-over-slf4j-1.7.25 jcl-over-slf4j-1.7.30 * * *
Jackson jackson-annotations-2.9.0 jackson-annotations-2.10.2 * * *
  jackson-core-2.9.8 jackson-core-2.10.2 * * *
  jackson-databind-2.9.8 jackson-databind-2.10.2 * * *
  jackson-datatype-joda-2.9.8 jackson-datatype-joda-2.10.2 * * *
  jackson-datatype-jsr310-2.9.8 jackson-datatype-jsr310-2.10.2 * * *
  classmate-1.4.0 classmate-1.5.1 * * *
Hibernate Validator hibernate-validator-6.0.14.Final hibernate-validator-6.0.18.Final * * *
Dozer dozer-core-6.4.1 dozer-core-6.5.0 * * *
  dozer-spring4-6.4.1 dozer-spring4-6.5.0 * * *
Jboss Logging jboss-logging-3.3.2.Final jboss-logging-3.4.1.Final * * *
  commons-dbcp2-2.5.0 commons-dbcp2-2.7.0 * * *
  commons-lang3-3.8.1 commons-lang3-3.9 * * *
  commons-pool2-2.6.0 commons-pool2-2.7.0 * * *
Apache Commons BeanUtils commons-beanutils-1.9.3 commons-beanutils-1.9.4 * * *
Joda Time joda-time-2.10.1 joda-time-2.10.5 * * *
Spring TestContext Framework spring-test-5.1.4.RELEASE spring-test-5.2.3.RELEASE * * *
Tomcat Embed El tomcat-embed-el-9.0.10 tomcat-embed-el-9.0.30 * * *
Mockito Core mockito-core-2.23.4 mockito-core-3.1.0 * * *
Byte Buddy byte-buddy-1.9.7 byte-buddy-1.10.6 * * *
  byte-buddy-agent-1.9.7 byte-buddy-agent-1.10.6 * * *
Hamcrest hamcrest-core-1.3 hamcrest-core-2.1 * * *
Selenium selenium-api-3.14.0 selenium-api-3.141.59 * * *
  selenium-chrome-driver-3.14.0 selenium-chrome-driver-3.141.59 * * *
  selenium-edge-driver-3.14.0 selenium-edge-driver-3.141.59 * * *
  selenium-firefox-driver-3.14.0 selenium-firefox-driver-3.141.59 * * *
  selenium-ie-driver-3.14.0 selenium-ie-driver-3.141.59 * * *
  selenium-java-3.14.0 selenium-java-3.141.59 * * *
  selenium-opera-driver-3.14.0 selenium-opera-driver-3.141.59 * * *
  selenium-remote-driver-3.14.0 selenium-remote-driver-3.141.59 * * *
  selenium-safari-driver-3.14.0 selenium-safari-driver-3.141.59 * * *
  selenium-support-3.14.0 selenium-support-3.141.59 * * *
Squareup okhttp-3.10.0 okhttp-3.14.6 * * *
  okio-1.14.1 okio-1.14.0 * * *

[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
Log4Jdbc Remix log4jdbc-remix-0.2.7 * * *
Javax javax.activation-api-1.2.0 * * *
JAXB jaxb-api-2.3.1 * * *
Tomcat tomcat-el-api-9.0.10 * * *
  tomcat-jsp-api-9.0.10 * * *
  tomcat-servlet-api-9.0.10 * * *
Apache Commons Codec commons-codec-1.11 * * *
H2 Database Engine h2-1.4.197 * *
Hamcrest hamcrest-library-1.3 * * *
Apache HTTPClient httpclient-4.5.6 * * *
  httpcore-4.4.10 * * *

[修正方法]

.classpath

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

<!-- omitted -->

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/log4jdbc-remix-0.2.7.jar"
    sourcepath="libsrc/log4jdbc-remix-0.2.7-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/javax.activation-api-1.2.0.jar"
    sourcepath="libsrc/javax.activation-api-1.2.0-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jaxb-api-2.3.1.jar"
    sourcepath="libsrc/jaxb-api-2.3.1-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/tomcat-el-api-9.0.10.jar"
    sourcepath="libsrc/tomcat-el-api-9.0.10-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/tomcat-jsp-api-9.0.10.jar"
    sourcepath="libsrc/tomcat-jsp-api-9.0.10-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/tomcat-servlet-api-9.0.10.jar"
    sourcepath="libsrc/tomcat-servlet-api-9.0.10-sources.jar" />

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

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

<classpathentry kind="lib"
    path="testlib/hamcrest-library-1.3.jar"
    sourcepath="libsrc/hamcrest-library-1.3-sources.jar" />

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

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

<!-- omitted -->

build.xml

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

<path id="build.classpath">
    <!-- omitted -->
    <pathelement location="${lib.dir}/log4jdbc-remix-0.2.7.jar"/>
    <pathelement location="${lib.dir}/javax.activation-api-1.2.0.jar"/>
    <pathelement location="${lib.dir}/jaxb-api-2.3.1.jar"/>
    <pathelement location="${lib.dir}/tomcat-el-api-9.0.10.jar"/>
    <pathelement location="${lib.dir}/tomcat-jsp-api-9.0.10.jar"/>
    <pathelement location="${lib.dir}/tomcat-servlet-api-9.0.10.jar"/>
    <!-- omitted -->
</path>

<path id="build.test.classpath">
    <!-- omitted -->
    <pathelement location="${testlib.dir}/commons-codec-1.11.jar"/>
    <pathelement location="${testlib.dir}/h2-1.4.197.jar"/>
    <pathelement location="${testlib.dir}/hamcrest-library-1.3.jar"/>
    <pathelement location="${testlib.dir}/httpclient-4.5.6.jar"/>
    <pathelement location="${testlib.dir}/httpcore-4.4.10.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
H2 Database Engine h2-1.4.200 * *
Jakarta jakarta.activation-api-1.2.1 *
  jakarta.xml.bind-api-2.3.2 *
Jaxb jaxb-runtime-2.3.2 *
TXW2 Runtime txw2-2.3.2 *
FastInfoset FastInfoset-1.2.16 *
Extended StAX API stax-ex-1.8.1 *
Istack Common Utility Code Runtime istack-commons-runtime-3.0.8 *
Hamcrest hamcrest-2.1 * * *
Tomcat tomcat-el-api-9.0.30 * * *
  tomcat-jsp-api-9.0.30 * * *
  tomcat-servlet-api-9.0.30 * * *

[修正方法]

.classpath

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

<!-- omitted -->
<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/h2-1.4.200.jar"
    sourcepath="libsrc/h2-1.4.200-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jakarta.activation-api-1.2.1.jar"
    sourcepath="libsrc/jakarta.activation-api-1.2.1-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jakarta.xml.bind-api-2.3.2.jar"
    sourcepath="libsrc/jakarta.xml.bind-api-2.3.2-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/jaxb-runtime-2.3.2.jar"
    sourcepath="libsrc/jaxb-runtime-2.3.2-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/txw2-2.3.2.jar"
    sourcepath="libsrc/txw2-2.3.2-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/FastInfoset-1.2.16.jar"
    sourcepath="libsrc/FastInfoset-1.2.16-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/stax-ex-1.8.1.jar"
    sourcepath="libsrc/stax-ex-1.8.1-sources.jar" />

<classpathentry kind="lib"
    path="src/main/webapp/WEB-INF/lib/istack-commons-runtime-3.0.8.jar"
    sourcepath="libsrc/istack-commons-runtime-3.0.8-sources.jar" />

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

<classpathentry kind="lib"
    path="testlib/tomcat-el-api-9.0.30.jar"
    sourcepath="libsrc/tomcat-el-api-9.0.30-sources.jar" />

<classpathentry kind="lib"
    path="testlib/tomcat-jsp-api-9.0.30.jar"
    sourcepath="libsrc/tomcat-jsp-api-9.0.30-sources.jar" />

<classpathentry kind="lib"
    path="testlib/tomcat-servlet-api-9.0.30.jar"
    sourcepath="libsrc/tomcat-servlet-api-9.0.30-sources.jar" />

<!-- omitted -->

build.xml

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

<path id="build.classpath">
    <!-- omitted -->
    <pathelement location="${lib.dir}/h2-1.4.200.jar"/>
    <pathelement location="${lib.dir}/jakarta.activation-api-1.2.1.jar"/>
    <pathelement location="${lib.dir}/jakarta.xml.bind-api-2.3.2.jar"/>
    <pathelement location="${lib.dir}/jaxb-runtime-2.3.2.jar"/>
    <pathelement location="${lib.dir}/txw2-2.3.2.jar"/>
    <pathelement location="${lib.dir}/FastInfoset-1.2.16.jar"/>
    <pathelement location="${lib.dir}/stax-ex-1.8.1.jar"/>
    <pathelement location="${lib.dir}/istack-commons-runtime-3.0.8.jar"/>
    <!-- omitted -->
</path>

<path id="build.test.classpath">
    <!-- omitted -->
    <pathelement location="${testlib.dir}/hamcrest-2.1.jar"/>
    <pathelement location="${testlib.dir}/tomcat-el-api-9.0.30.jar"/>
    <pathelement location="${testlib.dir}/tomcat-jsp-api-9.0.30.jar"/>
    <pathelement location="${testlib.dir}/tomcat-servlet-api-9.0.30.jar"/>
    <!-- omitted -->
</path>
⚠️ **GitHub.com Fallback** ⚠️