4.3.8. Revisão do Sumário das Alterações feitas quando Migrando o Aplicativo Seam 2.2 Booking
Embora seja mais eficiente determinar as dependências com antecedência e adicionar as dependências em uma única etapa, esse exercício apresenta como os problemas aparecem no log e fornece alguma informação de como depurá-los e resolvê-los. Segue abaixo um sumário das alterações realizadas ao aplicativo quando migrando-o ao JBoss Enterprise Application Plataform 6.
Importante
Os aplicativos que usam o Hibernate diretamente com o Seam 2.2 podem usar a versão do Hibernate 3 empacotados dentro do aplicativo. O Hibernate 4, que é fornecido através do módulo org.hibernate do JBoss Enterprise Application Plataform 6, não é suportado pelo Seam 2.2. Esta amostra possui por intenção ajudá-lo a executar seu aplicativo no JBoss Enterprise Application Plataform 6 como primeira etapa. Por favor certifique-se de que o empacotamento do Hibernate 3 com o aplicativo Seam 2.2 não é uma configuração suportada.
- Você criou um arquivo
jboss-deployment-structure.xmlno diretórioMETA-INF/do EAR. Você adicionou o<dependencies>e<exclusions>para resolver oClassNotFoundExceptions. Este arquivo contém os seguintes dados:<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> - Você copiou os seguintes JARs a partir do diretório
EAP5_HOME/jboss-eap-5.1/seam/lib/ao diretóriojboss-seam-booking.ear/lib/para solucionar oClassNotFoundExceptions:- hibernate-core.jar
- hibernate-validator.jar
- Você modificou o arquivo
jboss-seam-booking.jar/META-INF/persistence.xmlconforme o seguinte.- Você alterou o elemento
jta-data-sourcepara uso do banco de dados da Amostra que lança o JBoss Enterprise Application Plataform 6:<!-- <jta-data-source>java:/bookingDatasource</jta-data-source> --> <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> - Você comentou a propriedade hibernate.cache.provider_class:
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
- Você modificou o arquivo
lib/components.xmldo WAR para uso de novos JNDI bindings- Você pode substituir o elemento existente
core:initconforme abaixo:<!-- <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"/> - Você adicionou elementos do componente para o "EjbSynchronizations" e "TimerServiceDispatcher" JNDI bindings
<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"/>