4.3.2. Seam 2.2. JPA 例の JBoss Enterprise Application Platform 6 への移行

概要

下記のタスクリストには、Seam 2.2 JPA サンプルアプリケーションを JBoss Enterprise Application Platform 6 へ正常に移行するために必要な変更の概要が記載されています。このサンプルアプリケーションは JBoss Enterprise Application Platform 5.1 ディストリビューションの EAP5.1_HOME/jboss-eap-5.1/seam/examples/jpa/ 下にあります。

重要

Seam 2.2 で Hibernate を直接使用するアプリケーションは、アプリケーション内部にパッケージ化された Hibernate 3 のバージョンを使用できます。JBoss Enterprise Application Platform 6 の org.hibernate モジュールを介して提供される Hibernate 4 は、Seam 2.2 によりサポートされません。この例では、最初の手順として JBoss Enterprise Application Platform 6 でアプリケーションを実行します。Hibernate 3 を Seam 2.2 アプリケーションでパッケージ化することはサポートされた構成ではないことに注意してください。

手順4.12 Seam 2.2 JPA サンプルを移行する

  1. jboss-web.xml ファイルを削除する

    jboss-seam-jpa.war/WEB-INF/ ディレクトリーより jboss-web.xml ファイルを削除します。jboss-web.xml に定義されるクラスローディングがデフォルトの挙動になります。
  2. 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"/> -->
    
  3. Seam 2.2 依存関係を追加する

    下記の JAR を Seam 2.2 ディストリビューションのライブラリーである SEAM_HOME/lib/ から jboss-seam-jpa.war/WEB-INF/lib/ ディレクトリーへコピーします。

    • slf4j-api.jar
    • slf4j-log4j12.jar
    • hibernate-entitymanager.jar
    • hibernate-core.jar
    • hibernate-annotations.jar
    • hibernate-commons-annotations.jar
    • hibernate-validator.jar
  4. 残りの依存関係を追加するため 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"/>
            </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 の JPA 例が JBoss Enterprise Application Platform 6 上にデプロイされ、正常に実行されます。