Curso de Linguagem Java



Documentos relacionados
Enterprise Java Beans

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

J2EE. J2EE - Surgimento

UNIDADE IV ENTERPRISE JAVABEANS

J2EE TM Java 2 Plataform, Enterprise Edition

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Prof. Fellipe Araújo Aleixo

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Web Technologies. Tópicos da apresentação

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Aplicações Distribuídas Cliente/ Servidor Corporativas

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS

Prova Específica Cargo Desenvolvimento

Associação Carioca de Ensino Superior Centro Universitário Carioca

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Um pouco do Java. Prof. Eduardo

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

UFG - Instituto de Informática

Enterprise Java Bean. Enterprise JavaBeans

Aula 03 - Projeto Java Web

JPA: Persistência padronizada em Java

Mapeamento Lógico/Relacional com JPA

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Criar uma aplicação JPA2 com EclipseLink e H2

Laboratório EJB e J2EE Uma aplicação completa

UFG - Instituto de Informática


GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

Instalação e Configuração do Java (por Gilberto Irajá Müller)

Introdução ao kit J2EE SDK (Sun)

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo

JSF - Controle de Acesso FERNANDO FREITAS COSTA

Tecnologias Web. Java Enterprise Edition

Universidade da Beira Interior

Adriano Reine Bueno Rafael Barros Silva

Sistemas Distribuídos

Componentes no Java EE

Java 2 Enterprise Edition Uma aplicação J2EE completa

Manual de Instalação PIMSConnector em Windows

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

UFG - Instituto de Informática

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

INSTALAÇÃO DO MICROSOFT WINDOWS SHAREPOINT SERVICES 2.0

Manual de Instalação do Agente Citsmart

Manual de Instalação e Configuração. Módulo Remote. (G2KA) para NFSE. v1.0

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Padrão Arquitetura em Camadas

Java II. Sérgio Luiz Ruivace Cerqueira

Stateful Session Beans

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

JPA Java Persistence API. Prof. Ramon Chiara

Tutorial de instalação do Java 7 no Windows 7.

Introdução à Linguagem Java

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Demoiselle Tutorial Módulo 1 Arquitetura

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores

Nota de Aula: Utilização da IDE Code::Blocks

Sistema de Gestão Comercial Plataforma GSAN. Documento de Procedimento de Instalação

Java para Desenvolvimento Web

Manual de Instalação PIMSConnector em Linux

Aplicação da Arquitetura Multicamadas Utilizando Java. Raquel Schlickmann Orientador: Marcel Hugo

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB

Java com Banco de Dados Posgree

4 Um Exemplo de Implementação

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Mini-curso Gratuito Globalcode Slide 1

Instalando e configurando o Java Development Kit (JDK)

Manual de Instalação JBOSS-EAP-6.3

Java 2 Enterprise Edition Session Beans

A interface de uma mensagem é extremamente flexível e permite várias formas de customização de conteúdo. Figura 1 - Tipos de Mensagens JMS

Instalação do Java SDK (Software Development Kit)

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Programação online em Java

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

CURSO DESENVOLVEDOR JAVA Edição 2010

HIBERNATE EM APLICAÇÃO JAVA WEB

JDBC Java Database Connectivity

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Manual de Instalação Versão 1.0

Acessando um Banco de Dados

Curso de Aprendizado Industrial Desenvolvedor WEB

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Aula 1 Acesso a Banco de Dados

Transcrição:

Curso de Linguagem Java 1

Referência Bibliográfica: Enterprise JavaBeans 3.0 Bill Burke & Richard Monson Editora. Prentice Hall Tutorial do J2EE Bodoff Green Haase Jendrock - Pawlan Stearns Editora Campus Revista JavaMagazine edições 8, e 47 Tutorial da Sun sobre JavaEE http://java.sun.com/javaee/5/docs/tutorial/doc/ 2

Aplicações MultiCamadas Camada Cliente Aplicação Desktop / Web Camada Web Request HttpServletRequest Camada de Negócios Servidor de Aplicações / Servidor Web Camada EIS JCA MainFrame HTML XML JavaScript Applet Servlet JSP Response HttpServletResponse EJB JPA / JDBC Aplicações Java Desktop Bancos de Dados 3

EJB Enterprise JavaBean Componente de software padrão executado no lado servidor (camada de negócios) que encapsula a lógica que atende às necessidades de um domínio de negócios. É utilizado na criação de aplicações corporativas distribuídas desenvolvidas com a tecnologia Java. Contêiner EJB É o ambiente responsável por gerenciar o ciclo de vida das instâncias das classes bean(objetos EJB) dentro de um servidor de aplicações. Servidor de Aplicações JavaEE Sistema que deve implementar os seguintes serviços: Enterprise JavaBeans (EJB) Contêiner EJB Java Persistence (JPA) Java Message Service (JMS) Java Transaction Service/Java Transaction API (JTS/JTA) Servlets e JavaServer Pages (JSP) Contêiner Web Java Naming and Directory Interface (JNDI) 4

Disponibiliza também entre outros recursos: Pool de Instâncias EJB Pool de Conexões a Bancos de Dados Controle de Concorrência Conectividade Remota Gerenciamento de Segurança Autenticação (identificação do usuário) Autorização (controle do que um usuário pode acessar) Comunicação (criptografia) Quando usar EJB em suas aplicações Quando a aplicação deve ser escalável, tanto por possuir um número crescente de usuários, como a aplicação pode estar distribuída em múltiplas máquinas. Quando transações são necessárias para garantir a integridade dos dados. Quando a aplicação possuir um alto número de clientes. Como a lógica de negócio fica nos componentes no lado servidor, a manutenção é facilitada. 5

Os três tipos básicos de Enterprise JavaBeans: Beans de Entidadade Entity Beans (JPA-Entity) São persistentes, representam o modelo persistente de dados. São gerenciados pelo serviço EntityManager. Beans de Sessão Session Beans Não são persistentes. São freqüentemente utilizados para gerenciar as interações entre os beans de entidade. Representam um fluxo de tarefa, um processo de negócio. Beans baseados em mensagens Message Driven Beans Recebem e processam mensagens assincronamente. São utilizados na interação com outros aplicativos através de um serviço de mensagens (JMS). Não possuem interfaces Local, nem Remota. Normalmente implementam a interface MessageListener, implementando assim o método onmessage() onde se localiza a lógica de negócio. 6

Beans de Sessão Session Beans Stateful SessionBean (Beans de sessão com informações de estado) Mantém o estado conversacional entre as chamadas de um cliente para o servidor, o que permite manter dados específicos ao cliente entre invocações de método. É uma extensão do aplicativo cliente. Não são mantidos em um pool de instâncias. Stateless SessionBean (Beans de sessão sem informações de estado) Não mantém nenhum estado conversacional entre o cliente e o servidor. São mantidos em um pool de instâncias. Possuem um desempenho maior que os beans de sessão com informações de estado. São utilizados para realizar tarefas que sejam realizadas em uma única chamada de método. 7

Componentes de um aplicativo que utiliza SessionBean. Interfaces Remota e/ou Local Interface remota Anotada com @javax.ejb.remote Define quais os métodos que um cliente tem permissão para invocar. Interface local Anotada com @javax.ejb.local Define quais os métodos que um outro EJB pode invocar dentro da mesma JVM. Classe do Bean Anotada com @javax.ejb.sateless ou @javax.ejb.stateful Contém a lógica de negócio, implementando os métodos descritos nas interfaces remota e/ou local e opcionalmente as interfaces de negócio. Cliente Remoto Aplicação que se conecta ao servidor EJB. Por meio da API JNDI, ele localiza a interface remota do EJB a ser utilizado e através da referência dessa interface aciona os métodos remotos do componente EJB. 8

Instalação e configuração do JBoss Baixe o JBoss no site http://jboss.com/products/jbossas/downloads Para Windows, baixe o arquivo jems-installer-1.2.0.ga.jar e execute-o. Na tela de configuração do tipo de instalação, selecione a opção EJB3. 9

Instalação e configuração do JBoss Nas demais telas, apenas clique em next, selecionando assim as opções padrão. Para iniciar o servidor, basta executar o arquivo de lote run.bat na pasta bin do diretório de instalação. Para encerrar o servidor, pressione <Ctrl><C> no prompt de comandos onde o servidor está sendo executado ou execute o arquivo de lote shutdown.bat com a opção -S. Acesso o endereço http://localhost:8080 para verificar a instalação. É aconselhável que se crie uma variável de ambiente JBOSS_HOME contendo o caminho do diretório de instalação do JBoss. 10

Construção da aplicação exemplo usando JBoss Crie um novo projeto Java e adicione no classpath os arquivos jboss-ejb3x.jar e ejb3-persistence que se encontram na pasta: %JBOSS_HOME%/client/ Torne a classe modelo.aluno serializável. Pois os objetos dessa classe irão trafegar pela rede. Crie no pacote negocio.ejb a Interface Remota AlunoRemote. Adicione o projeto que contém a classe modelo.aluno no buildpath. package negocio.ejb; import javax.ejb.*; import modelo.aluno; @Remote public interface AlunoRemote { public int incluir(aluno a); } Interface Remota 11

Crie no pacote negocio.ejb a classe do bean AlunoBean package negocio.ejb; import modelo.aluno; import javax.persistence.*; import javax.ejb.*; Classe do Bean @Stateless public class AlunoBean implements AlunoRemote { @PersistenceContext(unitName = "teste") private EntityManager em; public int incluir(aluno a) { em.persist(a); return a.getid(); } } 12

Crie no pacote cliente a classe ClienteAlunoEJB package cliente; import modelo.*; import negocio.ejb.*; import javax.naming.*; import java.util.*; Cliente Remoto public class ClienteAlunoEJB { public static void main(string[] args) { Configuração do Contexto JNDI try { (dependente do servidor) Properties prop = new Properties(); prop.put(context.initial_context_factory, "org.jboss.naming.namingcontextfactory"); prop.put(context.provider_url, "localhost:1099"); InitialContext jndicontext = new InitialContext(prop); Object ref = jndicontext.lookup("alunobean/remote"); AlunoRemote refbean = (AlunoRemote) ref; 13

Aluno a = new Aluno(); a.setnome("josé"); a.setra(987654321); a.setms1(7.5); a.setms2(6.0); int id = refbean.incluir(a); } System.out.println("Id do aluno inserido " + id); } catch (NamingException ex) { ex.printstacktrace(); } } 14

Implantação da aplicação. Os arquivos Aluno.class, AlunoBean.class, AlunoRemote.class e o persistence.xml serão empacotados em um arquivo.jar e implantados no diretório de deploy do servidor JBoss. Para se executar a aplicação, algumas configurações deverão ser efetuadas previamente: Criação de uma Fonte de Dados para o Banco MySQL. Criação do arquivo persistence.xml. Criação de um arquivo de build (build.xml) para automatizar a implantação através do aplicativo Apache Ant. 15

Configure o JBoss para fazer conexão com o MYSQL. Crie o arquivo testedb-ds.xml na pasta %JBOSS_HOME%/server/default/deploy <?xml version="1.0" encoding="utf-8"?> <datasources> <local-tx-datasource> <jndi-name>testeds</jndi-name> <connection-url> jdbc:mysql://localhost:3306/uniban </connection-url> <driver-class>com.mysql.jdbc.driver</driver-class> <user-name>root</user-name> <password>admin</password> </local-tx-datasource> </datasources> Copie o driver JDBC do MySQL para a pasta Configuração da Fonte de Dados %JBOSS_HOME%/server/default/lib 16

Crie o arquivo persistence.xml na pasta META-INF em seu projeto. Configuração do persistence.xml <persistence> <persistence-unit name="teste"> <jta-data-source>java:/testeds</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="update"/> </properties> </persistence-unit> </persistence> 17

Crie o arquivo build.xml na pasta raiz do seu projeto. Criação do arquivo de build <?xml version="1.0"?> <project name="exemploalunoejb" default="ejbjar" basedir="."> <property environment="env"/> <property name="src.dir" value="${basedir}"/> <property name="jboss.home" value="${env.jboss_home}"/> <property name="build.dir" value="${basedir}/build"/> <property name="build.classes.dir" value="${build.dir}/classes"/> <!-- Local onde estão as classes persistentes --> <property name="modelo" value="/javaprog/projetojpa/modelo"/> 18

<!-- Construção do classpath --> <path id="classpath"> <fileset dir="${jboss.home}/server/default/lib"> <include name="*.jar"/> </fileset> <fileset dir="${jboss.home}/server/default/deploy/ejb3.deployer"> <include name="*.jar"/> </fileset> <fileset dir="${jboss.home}/server/default/deploy/jboss-aop-jdk50.deployer"> <include name="*.jar"/> </fileset> <fileset dir="${jboss.home}/lib"> <include name="*.jar"/> </fileset> <fileset dir="${modelo}"> <include name="*.class"/> </fileset> <pathelement location="${build.classes.dir}"/> </path> <property name="build.classpath" refid="classpath"/> 19

<!-- Prepara o diretório de build --> <target name="prepare" > <mkdir dir="${build.dir}"/> <mkdir dir="${build.classes.dir}"/> <mkdir dir="${build.classes.dir}/modelo"/> <copy file="${modelo}/aluno.class" todir="${build.classes.dir}/modelo"/> </target> <!-- Compila os arquivos de código fonte --> <target name="compile" depends="prepare"> <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="on" deprecation="on" optimize="off" includes="**"> <classpath refid="classpath"/> </javac> </target> 20

<!-- Cria o arquivo jar e o implanta no servidor de aplicações--> <target name="ejbjar" depends="compile"> <jar jarfile="build/alunoejb.jar"> <fileset dir="${build.classes.dir}"> <include name="modelo/*.class"/> <include name="negocio/ejb/*.class"/> </fileset> <fileset dir="${basedir}/"> <include name="meta-inf/persistence.xml"/> </fileset> </jar> <copy file="build/alunoejb.jar" todir="${jboss.home}/server/default/deploy"/> </target> <!-- Executa o cliente --> <target name="run.client" depends="ejbjar"> <java classname="cliente.clientealunoejb" fork="yes" dir="."> <classpath refid="classpath"/> </java> </target> </project> 21

Abra uma janela do prompt de comando. Mude o diretório corrente para a pasta raiz do seu projeto. Implante a aplicação digitando o comando. > ant Inicie o servidor de aplicações JBoss executando o arquivo run.bat na pasta %JBOSS_HOME%/bin Execute o cliente remoto digitando o comando > ant run.client 22