4.3.8. Récapitulatif des changements à effectuer lors d'une Migration de l'application Seam 2.2 Booking


Bien que ce serait beaucoup plus efficace de déterminer à l'avance les dépendances et ajouter les dépendances implicites en une seule étape, cet exercice montre comment les problèmes apparaissent dans le journal et donne des informations sur la façon de les déboguer et de les résoudre. Ce qui suit est un résumé des modifications apportées à la demande lors de sa migration vers JBoss EAP 6.

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.
  1. Vous avez créé un fichier jboss-deployment-structure.xml dans le répertoire META-INF/ du EAR. Vous avez ajouté <dependencies> et <exclusions> pour résoudre ClassNotFoundExceptions. Ce fichier contient les données suivantes :
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
      <deployment>
      	  <dependencies>
    	      <module name="javax.faces.api" slot="1.2" export="true"/>
    	      <module name="com.sun.jsf-impl" slot="1.2" export="true"/>
    	      <module name="org.apache.commons.logging" export="true"/>
        	      <module name="org.dom4j" export="true"/>
    	      <module name="org.apache.commons.collections" export="true"/>
    	    </dependencies>
      </deployment>
      <sub-deployment name="jboss-seam-booking.war">
      	<exclusions>
    	      <module name="javax.faces.api" slot="main"/>
    	      <module name="com.sun.jsf-impl" slot="main"/>
    	    </exclusions>
    	    <dependencies>
    	      <module name="javax.faces.api" slot="1.2"/>
    	      <module name="com.sun.jsf-impl" slot="1.2"/>
    	    </dependencies>
      </sub-deployment>
    </jboss-deployment-structure>
    
    Copy to Clipboard Toggle word wrap
  2. Vous avez copié les JAR suivants du répertoire EAP5_HOME/jboss-eap-5.X/seam/lib/ (remplacer 5.X par la version EAP 5 à partir de laquelle vous allez migrer) dans le répertoire jboss-seam-booking.ear/lib/ afin de résoudre ClassNotFoundExceptions  :
    • hibernate-core.jar
    • hibernate-validator.jar
  3. Vous avez modifié le fichier jboss-seam-booking.jar/META-INF/persistence.xml comme suit.
    1. Vous avez changé l'élément jta-data-source pour qu'il utilise la base de données Exemple fourni dans JBoss EAP 6 :
      <!-- <jta-data-source>java:/bookingDatasource</jta-data-source> -->
      <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
      
      Copy to Clipboard Toggle word wrap
    2. Vous avez dé-commenté la propriété hibernate.cache.provider_class :
      <!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
      
      Copy to Clipboard Toggle word wrap
  4. Vous avez modifié les fichiers lib/components.xml du WAR pour utiliser les nouvelles liaisons JNDI
    1. Vous avez remplacé l'élément existant core:init comme suit :
      <!-- <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 Toggle word wrap
    2. Vous avez ajouté des éléments de composants pour les liaisons JNDI "EjbSynchronizations" et les liaisons JNDI "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 Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat