No dia 1 de Novermbro do ano passado (2013), foi lançada a versão 2.4.0 conforme o Twitter dos mantenedores do framework. Decidi então saber qual seria a dificuldade de rodar um projeto Demoiselle no Oracle WebLogic 12c.
O WebLogic 12c (versão 12.1.1) foi lançado em Dezembro de 2011 e é compatível e certificado na plataforma Java EE 6, mas foi no ano passado em Julho que recebeu um update (a versão 12.1.2) com uma série de novas features e algumas correções, completando assim o release 12c do Cloud Application Foundation, que serve de infraestrutura para toda a tecnologia Fusion Middleware da Oracle.
Criando um projeto de exemplo e um pacote WAR
Uma grande vantagem do Demoiselle é que é um framework desenvolvido inteiramente com Apache Maven, e possui archetypes para facilitar a criação de novos projetos. Para este teste, vou usar o seguinte archetype:<groupId>br.gov.frameworkdemoiselle.archetypes</groupId>O comando para criar um projeto a partir deste archetype pode ser este:
<artifactId>demoiselle-jsf-jpa</artifactId>
<version>2.4.0</version>
$ mvn archetype:generate \
-DarchetypeGroupId=br.gov.frameworkdemoiselle.archetypes \
-DarchetypeArtifactId=demoiselle-jsf-jpa \
-DarchetypeVersion=2.4.0 \
-DgroupId=br.gov.frameworkdemoiselle.sample \
-DartifactId=demoiselle-sample-2.4.0 \
-Dversion=1.0.0-SNAPSHOT \
-DinteractiveMode=false
O nome do projeto será demoiselle-sample-2.4.0.
Ajuste a configuração JPA do projeto
O Demoiselle vem com um arquivo persistence.xml no diretório src/main/resources/META-INF e este arquivo deve ser editado da seguinte maneira:
- Comente a configuração que está ativa logo no início do arquivo (específica para JBoss)
- Descomente a segunda configuração para GlassFish, chamada "GlassFish 3 with JTA transaction"
- Modifique o JNDI do Data Source para o seguinte valor: jdbc/demoiselle
Geração do pacote WAR
Agora para ter um arquivo WAR pronto para ser instalado no WebLogic, basta gerar o pacote:
$ mvn -Pglassfish3 package
Repare que especifico o profile chamado glassfish3. Isto porque o Demoiselle possui uma série de profiles para cada servidor de aplicação (tomcat6, tomcat7, glassfish3, jboss6, jboss7). No momento em que escrevo este blog, meu pedido para acrescentar o profile do WebLogic 12c ainda não foi aceito. Acompanhe o pull request no GitHub para maiores detalhes e atualizações.
Mas não tem problema especificar o profile já existente glassfish3, pois este atende às especificações do Java EE 6, e o WAR resultante funciona perfeitamente no WebLogic 12c.
Agora você deve ter no diretório target do projeto, um arquivo chamado demoiselle-sample-2.4.0-1.0.0-SNAPSHOT.war. Anote o local e o nome deste arquivo para depois fazermos deploy deste artefato.
Download, Instalação, Configuração e Deploy no WebLogic 12c
Sobre como fazer download e como instalar o WebLogic, já escrevi em 2012, How to Install WebLogic 12c ZIP on Linux (em inglês). Se tiver alguma dúvida, comente no post!Quanto à configuração, a única coisa que precisamos fazer é criar um Data Source apontando para um banco de dados. Desde a versão 10.3.3 o WebLogic já vem com o Derby como parte da instalação, permitindo assim configurar um Data Source para um banco de dados em memória. No WebLogic 12c, o Derby já está ativo e para criar um Data Source é bem fácil.
Primeiro, acesse o diretório onde o domínio foi criado, e depois inicialize o servidor:
$ ./startWebLogic.shAgora acesse a URL do console administrativo Web no endereço http://localhost:7001/console. Informe o usuário/senha que você definiu durante a instalação (geralmente, é weblogic/welcome1). O passo-a-passo da configuração é bem simples:
- No menu esquerdo, clique em Services, Data Sources
- Clique no botão New
- Selecione a opção Generic Data Source
- Informe o valor jdbc/demoiselle nos dois campos texto (Name e também JNDI Name)
- Selecione o tipo de banco de dados Derby na combobox
- Clique em Next
- Na tela seguinte não há o que fazer. Clique em Next
- Na tela seguinte também não há o que fazer. Clique em Next
- Na tela onde diz "Connection Properties", informe o valor demoiselle no campo Database Name
- Nesta tela, informe localhost como o Host Name
- Nesta tela, informe demoiselle nos campos Username, Password, Confirm Password
- Clique em Next
- Na tela seguinte verifique os dados, e experimente a configuração clicando no botão Test Configuration
- Clique em Next
- Selecione o AdminServer e finalmente, clique em Finish
Agora você deve ter um Data Source chamado jdbc/demoiselle, de acordo com a configuração feita anteriormente no persistence.xml do projeto.
WLST - WebLogic Scripting Tool
O WebLogic vem com uma feature muito legal chamada WLST, que permite você escrever scripts em Python para automatizar tarefas administrativas no servidor de aplicação. Se você achou o passo-a-passo acima complicado, experimente rodar este script especificamente para criar o Data Source jdbc/demoiselle usando o Derby. O procedimento é simples:
- Faça download do arquivo no Gist
- Acesse a pasta do domínio WebLogic
- Digite o seguinte comando para incorporar as variáveis de ambiente do domínio WebLogic na shell:
$ source bin/setDomainEnv.sh - Digite o seguinte comando para invocar o script:
$ java weblogic.WLST <caminho para o arquivo>/create-demoiselle-ds.py
Deployment da aplicação Demoiselle
Aproveitando o ambiente do domínio na sua shell (após executar "source bin/setDomainEnv.sh"), é muito simples fazer o deploy da aplicação. Execute o seguinte comando:
$ java weblogic.Deployer \ -username weblogic \ -password welcome1 \ -deploy <caminho para o projeto>/demoiselle-sample-2.4.0/target/demoiselle-sample-2.4.0-1.0.0-SNAPSHOT.war
Lembre-se de ajustar o usuário e senha do seu domínio WebLogic tanto no comando acima, quanto no script WLST. Por conveniência, deixei já o comumente utilizado u:weblogic p:welcome1.
Caso queira usar a interface Web, o processo é simples. Clique no menu Deployments, depois no botão Install e basta seguir as instruções da tela.
Testando a aplicação Demoiselle
Agora que a aplicação está rodando, você pode testar acessando a URL da aplicação, que provavelmente é esta: http://localhost:7001/demoiselle-sample-2.4.0-1.0.0-SNAPSHOT/index.jsf
Qualquer dúvida, é só comentar! Ou me procurar no Twitter @brunoborges. :-)
Abs!
Nenhum comentário:
Postar um comentário