200 likes | 336 Views
Um exemplo usando JBoss Leandro de Camargo A. Lima. EJB3, JMS, JMX. Leandro C. A. Lima. Bacharel em Ciência da Computação pelo Mackenzie SP Cursando MBA em Administração de Empresas – FGV/SP Certificado Sun: SCJP, SCWCD e SCJA
E N D
Um exemplo usando JBoss Leandro de Camargo A. Lima EJB3, JMS, JMX
Leandro C. A. Lima Bacharel em Ciência da Computação pelo Mackenzie SP Cursando MBA em Administração de Empresas – FGV/SP Certificado Sun: SCJP, SCWCD e SCJA Trabalha há 7 anos com projeto, arquitetura e desenvolvimento de software, atualmente no UOL sistemas de cobrança, billing e produtos Palestrou em eventos JustJava 2004 e 2006 , Imes.Java e SemComp2006 - USP São Carlos
Conteúdo JBoss Application Server EJB3 Processamento Assíncrono – JMS JMX Uma aplicação exemplo (um pouco de spring!) http://martinfowler.com/articles/injection.html
Objetivos Apresentar o Jboss Application Server Introduzir conceitos sobre EJBs Introduzir conceitos sobre JMS utilizando Jboss Criar StatelessSessionBean Criar um MessageDrivenBean Criar uma interface JMX para SessionBean Apresentar a aplicação funcionando Perguntas e Respostas
J2EE 1.4 – JSR 151 Interfaces providas pelo container Deployment descriptors
JEE5 – JSR 244 Annotations Não utiliza mais interfaces do Container Ficou muito mais fácil fazer o “Hello World!”
O que está disponível Stateless SessionBean Stateful SessioBean EntityBean MessageDrivenBean (JMS) Segurança Transações etc.
Jboss Application Server JBoss Application Server é o servidor de aplicações Java mais utilizado no mercado* Fornece enterprise services incluindo clustering, caching, e persistência. www.jboss.org *Segundo o portal jboss.com
Ambiente JDK 1.5.0 Eclipse 3.2 Jboss 4.0.5.GA
SessionBeans Session beans podem representar workflows São divididos em dois tipos: Stateless Stateful Não são persistentes Stateless session bean é relativamente fácil de se desenvolver e é também muito eficiente
Criando um StatelessSessionBean Um POJO comum com anotações @Stateless para criar um SessionBean sem estado @TransactionManagement para definir como as transações são gerenciadas Transações são required por padrão
Código @Stateless public class HelloBean implements HelloBeanRemote { public String sayHello(){ return "Hello!"; } } public interface HelloRemote { public String sayHello(); }
Criando um destino O Jboss possui um arquivo de configuração para criação de destinos (Filas, Tópicos, etc.)
Código @MessageDriven (name="NotificationMDB" ,activationConfig={ @ActivationConfigProperty(propertyName="messagingType", propertyValue="javax.jms.MessageListener"), @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="Destination", propertyValue="notificationQueue"), }) public class NotificationMDB implements MessageListener { @Resource private MessageDrivenContext context; public void onMessage(Message message) { //faz o que tem que fazer } }
JMX – Java Management Extension API para fornecer recursos de gerenciamento de aplicações O gerenciamento ocorre por meio de Mbeans Antes era necessário implementar interfaces de gerenciamento e escrever um descritor xml para mapear os atributos e operações gerenciáveis Hoje é possível utilizar Anotações em uma classe/interface comum, simplificando o processo
Exemplo SessionBean para enviar mensagens à uma fila MessageDrivenBean para consumir as mensagens da fila Um JMX para servir de interface ao SessionBean
Sites Recomendados http://java.sun.com/products/jms/ http://java.sun.com/products/jms/tutorial/ http://jcp.org/en/jsr/detail?id=220 http://jcp.org/en/jsr/detail?id=244 http://www.jboss.org http://martinfowler.com/articles/injection.html http://www.uol.com.br