segunda-feira, 16 de dezembro de 2013

Preparando Aplicações ADF-EJB Fusion com Oracle JDeveloper 12c para Glashfish 3.1.2

Objetivo
O objetivo deste tutorial é apresentar passo a passo o necessário para criar uma aplicação ADF-EJB no Oracle JDeveloper 12c para o servidor de aplicação Glassfish 3.1.2.
Requisitos
Necessário ter o Glassfish 3.1.2 instalado e configurado para utilização de aplicação com ADF Framework.
Criando aplicação de Teste
Abra o JDeveloper e selecione o menu File > New > Application para criar uma nova aplicação. Siga o passo a passo das Figuras 1 a 7 para criar um projeto ADF-EJB.
Figura 1 - Definindo tipo aplicação.


Figura 2 - Definindo nome aplicação.


Figura 3 - Definindo projeto de controle da camada de dados.


Figura 4 - Definindo projeto de controle da camanda de dados.


Figura 5 - Definindo versão JEE.
Figura 6 - Criando projeto de controle da camada Web.


Figura 7 - Criando projeto de controle da camada Web.


Após a criação do projeto utilizando o assistente do JDeveloper, crie a conexão com o banco de dados. Neste tutorial estamos utilizando o HR Schema disponibilizado pela própria Oracle para estudo do ADF framework.
Veja Figura 8 para entender como configurar a conexão.
Figura 8 - Criando conexão com banco de dados.
Caso a aba Databases não esteja disponível acesse o menu Window > Database > Databases. Observe que na Figura 8 a conexão HRConn-DSV aparece de baixo do projeto AppTestJeeEjbGlassfish. Após criar a conexão clique e arraste a mesma para o projeto AppTestJeeEjbGlassfish, associando assim o projeto a conexão recém criada.
Uma vez que o projeto estiver associado à conexão com banco de dados crie a entidade Employee conforme o passo a passo das Figuras 9 a 14.
Figura 9 - Escolhendo Persistence Unit.
Figura 10 - Escolhendo tipo de conexão.
Figura 11 - Escolhendo conexão ativa.
Figura 12 - Identificando tabelas.
Figura 13 - escolhendo package das entidades.
Figura 14 - Definindo nome das entidades.
Na sessão relationships é possível configurar os relacionamentos com as tabelas que serão mapeadas em entidades. Como apenas a tabela EMPLOYEES foi escolhida (vide Figura 12) o único relacionamento disponível nesta sessão será o auto relacionamento existente nesta tabela.
Assim que a classe Employee foi gerada será criado o arquivo persistence.xml do JPA. Neste arquivo vamos alterar as configurações do JNDI como apresentado na Figura 15 e na Figura 16.
Figura 15 - Alterando JNDI e Server Plataform.


Figura 16 - Alterando JNDI para sessão properties.
Crie um componente EJB Diagram, conforme Figura 17, para organizar a relação entre o EJB Bean e a classe Employee.
Figura 17 - Criando EJB Diagram para entidade Employee.
Para criar este componente, clique com o botão direito no projeto Model e acesse New > EJB Diagram (EJB/JPA). Siga os passos apresentados na Figura 18 para criar o EJB Bean responsável por controlar os dados da entidade Employee.
Figura 18 - Criando EJB Bean para entidade Employee.
Ao arrastar o componente Session Bean para o EmployeeDiagram.ejb_diagram será apresentado pelo JDeveloper o assistente de criação do EJB Bean.
A Figura 19 apresenta o assistente de criação do EJB Bean.
Figura 19 - Assistente de criação EJB.
Altere o nome padrão do EJB Bean para EmployeeSessionEJB e mantenha as outras informações apresentadas no assistente. Ao confirmar a criação do EJB Bean será apresentado o EmployeeDiagram.ejb_diagram com a relação entre o EJB Bean recém criado e a entidade Employee, vide Figura 20.
Figura 20 - Resultado da criação do EJB Bean.
Para finalizar é necessário criar um componente Data Control que será utilizado para acessar o EJB Bean através do projeto Web. Para criar o Data Control clique com o botão direito na classe EmployeeSessionEJBBean e acesse o menu Create Data Control. Observe a Figura 21 e mantenha as opções padrão apresentadas pelo assistente de criação de Data Control.
Figura 21 - Criando Data Control.
O Data Control criado realiza lookup no EJB com a classe weblogic.jndi.WLInitialContextFactory contudo, esta classe pertence as libraries do servidor de aplicação Web Logic. Como o objeto deste tutorial é realizar deploy no Glasshfish é necessário trocar esta classe para a classe com.sun.enterprise.naming.SerialInitContextFactory.
Para fazer esta alteração selecione o arquivo DataControls.dcx (criado automaticamente quando o Data Control EmployeeDataControl foi gerado), selecione a visualização source e mantenha o cursor na tag ejb-defination e então altere o valor a propriedade initial-context-factory para com.sun.enterprise.naming.SerialInitContextFactory (vide Figura 22).
Figura 22 - Ajustando propriedade inital-context-factory.
Neste momento o projeto Model esta pronto para ser utilizado no Glassfish.
Crie o arquivo index.jpsx no projeto Web que será a pagina inicial da aplicação AppTestJeeEjbGlassfish. Clique com o botão direito no projeto Web e acesse o menu New > Page. Veja a Figura 23 para identificar as configurações da página.
Figura 23 - Criando JSP.


Abra o arquivo web.xml e configure a tag welcome-file-list para faces/index.jspx. Faça isso editando diretamente o conteúdo do arquivo ou utilizando a sessão Pages da visualização overview conforme Figura 24.
Figura 24 - Configurando welcome page.
Conforme a Figura 25 acesse a sessão Data Controls da aba Applications, selecione employeeFindAll e arreste para o arquivo index.jspx e então clique em ADF Form.
Figura 25 - Criando ADF Form


Monte o formulário conforme a Figura 26. Verifique a Figura 27 para conferir o resultado.
Figura 26 - Configurando formulário


Figura 27 - Formulário criado


Configurando a aplicação para deploy no Glassfish


Clique com o botão direito no projeto Model > Project Properties e então acesse a sessão Deployment e remova o profile AppTestJeeEjbGlassfish_Model conforme Figura 28.
Figura 28 - Configurando projeto Model (profile desnecessário)
Selecione o profile AppTestJeeEjbGlassfish_Projetc1_ejb e clique no botão Edit. Acesse o subitem Filters conforme a Figura 29 e desmarque o arquivo weblogic-ejb-jar.xml.
Figura 29 - Configurando projeto Model (remover weblogic-ejb-jar.xml)
Por último acesse o item Plataform conforme a Figura 30 e altere a propriedade Default Plataform para Glassfish 3.1.
Figura 30 - Configurando projeto Model (configurando Plafaform)
Clique com o botão direito no projeto Web > Project Properties e então acesse a sessão Deployment. Selecione o profile AppTestJeeEjbGlassfish_Project1_webapp (Web Module) clique no botão Edit e altere a propriedade Default Plataform para Glassfish 3.1 conforme Figura 31.
Figura 31 - Configurando projeto Web (configurando Plataform)
Nota
Alterar a propriedade Default Plataform para Glassfish 3.1 faz com que o JDeveloper crie o arquivo glassfish-web.xml seja gerado no momento de empacotar o projeto em um arquivo WAR.


Acesse subitem Contributors e remova o item Project Dependencies, conforme Figura 32. Esta ação impede que seja gerado um JAR do projeto EJB dentro do arquivo WAR. Ao final da configuração da aplicação será exportado um arquivo EAR e neste arquivo serão encontrados o JAR do projeto Model e o WAR do projeto Web.
Figura 32 - Configurando projeto Web (removendo dependências)
Acesse o Application > Deployment > New Deployment Profile então crie o profile applicationEAR conforme Figura 33.
Figura 33 - Criando EAR deployment profile
Acesse o menu Application > Application Properties e então acesse a sessão Deployment. Selecione o profile applicationEAR (Application Module) e clique no botão Edit. Altere a propriedade Default Plataform para Glassfish 3.1 do mesmo modo realizado no projeto Web e no projeto Model.
Marque os profiles dos projetos Model e Web conforme Figura 34.
Figura 34 - Selecionado deployment profiles
Desmarque o arquivo weblogic-application.xml na sessão File Groups conforme Figura 35.
Figura 35 - Remover weblogic-application.xml
Para gerar o EAR acesse o menu Application > Deploy > applicationEAR. Selecione Deploy to EAR e o arquivo applicationEAR.ear será gerado no diretório deploy dentro do diretório da aplicação.
Figura 36 - Gerando EAR
Configurando JDBC Data Source no Glassfish
Antes de realizar o deploy do EAR no servidor é necessário configurar a conexão com o banco de dados.
Acesse o console administrativo (provavelmente no endereço https://localhost:4848/), e no menu Commom Tasks > Resources > JDBC Connection Pools clique no botão New e preencha as conforme a Figuras 37 e 28.
Figura 37 - Configurando conexão JDBC
Figura 38 - Configurando conexão JDBC
Na sessão Additional Properties configure as propriedades da conexão conforme Figura 39.
Figura 39 - Configurando propriedades da conexão
Para finalizar é necessário configurar um JBDC Resource para a conexão HRConn-DSV. Acesse o menu Commom Tasks > Resources > JDBC Resources clique em New e preencha as conforme a Figura 40.
Figura 40 - Configuração JDBC Resource
Realizando deploy do EAR no Glassfish
Acesse o console administrativo novamente e selecione a ação Deploy an Application conforme Figura 41.
Figura 41 - Realizar deploy
Selecione o arquivo EAR e faça o deploy conforme Figura 42.
Figura 42 - Escolhendo arquivo EAR
Após o deploy vá até o detalhamento da aplicação conforme Figura 43.
Figura 43 - Selecionado detalhamento da aplicação
Clique no link Lunch como apresentado na Figura 44 para ir até página de acesso dos links da aplicação. Na aba Descriptor serão apresentados os arquivos application.xml, web.xml e glassfish-web.xml gerados automaticamente para o deploy no Glasshfish conforme as configuração realizadas no JDeveloper.
Figura 44 - Acessando links de acesso à aplicação
No navegador deve ser apresentada uma página conforme a Figura 45. Clique em qualquer um dos links para acessar a aplicação.
Figura 45 - Acessando aplicação

That is all folks!!!