4.3.8. Seam 2.2 Booking アプリケーションの移行時に加えられる変更概要の確認
事前に依存関係を判断し、暗黙的な依存関係を一度に追加した方が効率的ですが、この例では問題がどのようにログに表示されるかを説明し、デバッグや解決方法に関する情報を提供します。JBoss EAP 6 へ移行するときにアプリケーションに加えられる変更の概要は次のとおりです。
重要
Seam 2.2 で Hibernate を直接使用するアプリケーションは、アプリケーション内部にパッケージ化された Hibernate 3 のバージョンを使用することがあります。JBoss EAP 6 の org.hibernate モジュールを介して提供される Hibernate 4 は、Seam 2.2 によってサポートされません。この例の目的は、最初の手順として JBoss EAP 6 でアプリケーションを実行させることです。Hibernate 3 を Seam 2.2 アプリケーションでパッケージ化する設定はサポートされないことに注意してください。
jboss-deployment-structure.xml
ファイルを、EAR のMETA-INF/
ディレクトリーに作成しました。ClassNotFoundExceptions
を解決するために、<dependencies>
と<exclusions>
を追加しました。このファイルには、以下のデータが含まれます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClassNotFoundExceptions
を解決するため、次の JAR をEAP5_HOME/jboss-eap-5.X/seam/lib/
ディレクトリー (5.X は移行元の EAP 5 バージョンに置き換え) からjboss-seam-booking.ear/lib/
ディレクトリーにコピーしました。- hibernate-core.jar
- hibernate-validator.jar
- 次のように
jboss-seam-booking.jar/META-INF/persistence.xml
ファイルを変更しました。- JBoss EAP 6 に同梱されるサンプルデータベースを使用するよう
jta-data-source
要素を変更しました。<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - hibernate.cache.provider_class プロパティーをコメントアウトしました。
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 新しい JNDI バインディングを使用するよう、WAR の
lib/components.xml
ファイルを変更しました。- 以下のように既存の
core:init
要素を置き換えました。<!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init jndi-pattern="java:app/jboss-seam-booking.jar/#{ejbName}" debug="true" distributable="false"/>
<!-- <core:init jndi-pattern="jboss-seam-booking/#{ejbName}/local" debug="true" distributable="false"/> --> <core:init jndi-pattern="java:app/jboss-seam-booking.jar/#{ejbName}" debug="true" distributable="false"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - "EjbSynchronizations" バインディングおよび "TimerServiceDispatcher" JNDI バインディングのコンポーネント要素を追加しました。
<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/> <component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>
<component class="org.jboss.seam.transaction.EjbSynchronizations" jndi-name="java:app/jboss-seam/EjbSynchronizations"/> <component class="org.jboss.seam.async.TimerServiceDispatcher" jndi-name="java:app/jboss-seam/TimerServiceDispatcher"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow