Se eu quiser fazer deploy da aplicação no servidor de aplicação Wildfly 9, quais alterações seriam necessárias no projeto, por favor ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Se eu quiser fazer deploy da aplicação no servidor de aplicação Wildfly 9, quais alterações seriam necessárias no projeto, por favor ?
Acrescento que eu sei como configurar o banco de dados MySQL no Wildfly 9.
Seria necessário alterar a configuração da classe JPAConfiguration ?
Seria necessário outras alterações no projeto ?
Oi Cassius,
Aí depende. Você pode não alterar nada e deixar que o Spring gerencie tudo para você, mantendo a mesma configuração de DataSource usada durante o projeto.
Caso você queira usar o DataSource configurado por dentro do Wildlfy, aí você vai deixar a classe JPAConfiguration bem curta. Você vai precisar buscar o EntityManager através da JNDI exposta pelo servidor, o mesmo vale para o PlatformTransactionManager.
Exemplo:
public class JPAConfiguration {
@Bean
public EntityManagerFactory emf() throws NamingException {
Context ctx = new InitialContext();
EntityManagerFactory lookup = (EntityManagerFactory) ctx
.lookup("java:comp/env/persistence/casadocodigo-emf");
return lookup;
}
@Bean
public PlatformTransactionManager transactionManager(){
return new JtaTransactionManager();
}
}
Para o lookup do EntityManager funcionar, você vai precisar alterar o seu web.xml.
<persistence-unit-ref>
<persistence-unit-ref-name>persistence/casadocodigo-emf</persistence-unit-ref-name>
<persistence-unit-name>casadocodigo-persistence-unit</persistence-unit-name>
</persistence-unit-ref>
O unit-ref-name é a chave da JNDI que você vai export o EntityManagerFactory na sua aplicação. A unit-name é o do persistence-unit configurado no seu persistence.xml.
Você pode achar sobre transações dentro do Spring na documentação deles.
Obrigado.