4.3.2. Seam 2.2 JPA サンプルの JBoss EAP 6 への移行
概要
下記のタスクリストには、Seam 2.2 JPA のサンプルアプリケーションを JBoss EAP 6 へ正常に移行するために必要な変更の概要が記載されています。このサンプルアプリケーションは、最新の JBoss EAP 5 ディストリビューションの EAP5.x_HOME/jboss-eap-5.x/seam/examples/jpa/ 下にあります。
重要
Seam 2.2 で Hibernate を直接使用するアプリケーションは、アプリケーション内部にパッケージ化された Hibernate 3 のバージョンを使用することがあります。JBoss EAP 6 の org.hibernate モジュールを介して提供される Hibernate 4 は、Seam 2.2 によってサポートされません。この例の目的は、最初の手順として JBoss EAP 6 でアプリケーションを実行させることです。Hibernate 3 を Seam 2.2 アプリケーションでパッケージ化する設定はサポートされないことに注意してください。
手順4.6 Seam 2.2 JPA サンプルの移行
jboss-web.xml ファイルを削除する
jboss-seam-jpa.war/WEB-INF/ディレクトリーよりjboss-web.xmlファイルを削除します。jboss-web.xmlに定義されるクラスローディングがデフォルトの挙動になります。以下のように
jboss-seam-jpa.jar/META-INF/persistence.xmlファイルを変更するjboss-seam-jpa.war/WEB-INF/classes/META-INF/persistence.xmlファイルのhibernate.cache.provider_classプロパティーを削除またはコメントアウトします。<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
- プロバイダーモジュールプロパティーを
jboss-seam-booking.jar/META-INF/persistence.xmlファイルに追加します。<property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
jta-data-sourceプロパティーを変更し、デフォルトの JDBC データソース JNDI 名を使用するようにします。<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
Seam 2.2 依存関係を追加する
下記の JAR を Seam 2.2 ディストリビューションのライブラリーであるSEAM_HOME/lib/からjboss-seam-jpa.war/WEB-INF/lib/ディレクトリーへコピーします。- antlr.jar
- slf4j-api.jar
- slf4j-log4j12.jar
- hibernate-entitymanager.jar
- hibernate-core.jar
- hibernate-annotations.jar
- hibernate-commons-annotations.jar
- hibernate-validator.jar
残りの依存関係を追加するため jboss-deployment-structure ファイルを作成する
以下のデータを含むjboss-deployment-structure.xmlファイルをjboss-seam-jpa.war/WEB-INF/フォルダーで作成します。<jboss-deployment-structure> <deployment> <exclusions> <module name="javax.faces.api" slot="main"/> <module name="com.sun.jsf-impl" slot="main"/> <module name="org.hibernate" slot="main"/> </exclusions> <dependencies> <module name="org.apache.log4j" /> <module name="org.dom4j" /> <module name="org.apache.commons.logging" /> <module name="org.apache.commons.collections" /> <module name="javax.faces.api" slot="1.2"/> <module name="com.sun.jsf-impl" slot="1.2"/> </dependencies> </deployment> </jboss-deployment-structure>
結果
Seam 2.2 JAP のサンプルアプリケーションが JBoss EAP 6 上にデプロイされ、正常に実行されます。