4.3.2. Migração do Exemplo Seam 2.2 JPA para o JBoss EAP 6

Sumário

A lista de tarefas a seguir resume as alterações necessárias para migrar com êxito o aplicativo de exemplo Seam 2.2 JPA para o JBoss EAP 6. Este aplicativo de exemplo pode ser encontrado na distribuição mais recente do JBoss EAP 5 sob EAP5.x_HOME/jboss-eap-5.x/seam/examples/jpa/

Importante

Os aplicativos que usam Hibernate diretamente com Seam 2.2 podem usar uma versão do Hibernate 3 empacotada dentro do aplicativo. Hibernate 4, que é fornecido através do módulo org.hibernate do JBoss EAP 6, não é suportado pelo Seam 2.2. Este exemplo tem como objetivo ajudá-lo a executar o seu aplicativo no JBoss EAP 6 como uma primeira etapa. Lembre-se de que o empacotamento do Hibernate 3 com um aplicativo Seam 2.2 não possui uma configuração suportada.

Procedimento 4.6. Migração do Exemplo Seam 2.2 JPA

  1. Remova o arquivo jboss-web.xml

    Remova o arquivo jboss-web.xml do diretório jboss-seam-jpa.war/WEB-INF/. O carregamento da classe definido no jboss-web.xml é agora o comportamento padrão.
  2. Modifique o arquivo jboss-seam-jpa.jar/META-INF/persistence.xml como a seguir.

    1. Remova ou converta em comentário a propriedade hibernate.cache.provider_class no arquivo jboss-seam-jpa.war/WEB-INF/classes/META-INF/persistence.xml:
      <!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
    2. Adicione a propriedade do módulo do provedor ao arquivo jboss-seam-booking.jar/META-INF/persistence.xml:
      <property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" />
    3. Altere a propriedade jta-data-source para utilizar o nome JNDI da fonte de dados JDBC padrão:
      <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
  3. Adicione as dependências Seam 2.2

    Copie os JARs a seguir da biblioteca de distribuição Seam 2.2, SEAM_HOME/lib/, no diretório 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. Crie um arquivo jboss-deployment-structure para adicionar as dependências restantes

    Crie um arquivo jboss-deployment-structure.xml na pasta jboss-seam-jpa.war/WEB-INF/ contendo os seguintes dados:
    <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>
Resultado:

O aplicativo de exemplo Seam 2.2 JPA implanta e executa com êxito no JBoss EAP 6.