4.3.2. Migrer l'exemple Seam 2.2 dans JBoss EAP 6

Résumé

La liste de tâches suivantes récapitule les changements nécessaires pour pouvoir migrer l'exemple d'application Seam 2.2 JPA dans JBoss EAP 6. Cet exemple d'application se trouve dans la dernière distribution JBoss EAP dans EAP5.x_HOME/jboss-eap-5/seam/examples/jpa/

Important

Les applications qui utilisent Hibernate directement avec Seam 2.2 utilisent sans doute une version d'Hibernate 3 empaquetée dans l'application. Hibernate 4, fourni par le module org.hibernate de JBoss EAP 6, n'est pas pris en charge par Seam 2.2. Cet exemple a pour but de vous aider à exécuter votre application dans JBoss EAP 6 comme première étape. Notez qu'empaqueter Hibernate 3 avec une application Seam 2.2 n'est pas une configuration prise en charge.

Procédure 4.6. Migration de l'exemple Seam 2.2 JPA Booking

  1. Retirer le fichier jboss-web.xml

    Retirer le fichier jboss-web.xml du répertoire jboss-seam-jpa.war/WEB-INF/. Le chargement de classe défini dans jboss-web.xml est maintenant le comportement de chargement de classe par défaut.
  2. Modifier le fichier jboss-seam-jpa.jar/META-INF/persistence.xml comme suit.

    1. Supprimer et dé-commenter la propriété hibernate.cache.provider_class du fichier jboss-seam-jpa.war/WEB-INF/classes/META-INF/persistence.xml :
      <!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
    2. Ajouter la propriété de module du fournisseur dans le fichier jboss-seam-booking.jar/META-INF/persistence.xml:
      <property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
    3. Modifier la propriété jta-data-source pour utiliser le nom JNDI de la source de données JDBC par défaut :
      <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
  3. Ajouter les dépendances Seam 2.2

    Copier les JAR suivantes de la bibliothèque de la distro Seam 2.2, SEAM_HOME/lib/, dans le répertoire 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
  4. Créer un fichier jboss-deployment-structure auquel ajouter les dépendances restantes

    Créer le fichier jboss-deployment-structure.xml dans le dossier jboss-seam-jpa.war/WEB-INF/ contenant les informations suivantes :
    <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>
Résultat  :

L'exemple d'application Seam 2.2 JPA déploie et exécute avec succès sur JBoss EAP 6.