SlideShare uma empresa Scribd logo
Java EE 5 - EJB 3.0, JSF 1.2 e NetBeans 5.5   Jul 23, 2012   Page 1
Java EE 5 – EJB 3.0, JSF 1.2, NetBeans
IDE 5.5 – Case Site Disponibilização
 O novo Java Enterprise Edition – EJB 3.0, JSF 1.2 e NetBeans
 IDE 5.5 – Juarez Barbosa – Systems Architect




                                       Java EE 5 - EJB 3.0, JSF 1.2 e NetBeans 5.5   Jul 23, 2012   Page 2
Objetivos



• Apresentar a nova versão da plataforma Java
  Enterprise Edition – Java EE 5
• Apresentar a API Enterprise JavaBeans – EJB 3.0 –
  JSR - 220
• Apresentar a API Java ServerFaces – JSF 1.2 – JSR -
  252
• Apresentar a IDE NetBeans 5.5 e o Visual Web Pack

                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
Agenda

• Introdução Java EE 5 - Overview
• EJB 3.0
• JSF 1.2
• NetBeans 5.5
• Case Site Disponibilização e apresentação de exemplos
  de código




                                                         Pa
            Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                    5.5 ge
Java EE 5

• “Java EE 5 significantly reduces the cost and
  complexity of developing and deploying multi-tier
  solutions, resulting in services that can be rapidly
  deployed and easily enhanced.”
• Especificação Java EE 5 (umbrella)
  – Java Platform, Enterprise Edition 5 (Java EE 5)
     • JSR-244




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
Java EE 5 - Especificações

• Web Services Technologies
  – Implementing Enterprise Web Services
     • JSR-109
  – Java API for XML-Based Web Services (JAX-WS) 2.0
     • JSR-224
  – Java API for XML-Based RPC (JAX-RPC) 1.1
     • JSR-101
  – Java Architecture for XML Binding (JAXB) 2.0
     • JSR-222
  – SOAP with Attachments API for Java (SAAJ)
     • JSR-67
  – Streaming API for XML
     • JSR-173
  – Web Service Metadata for the Java Platform
     • JSR-181




                                                        Pa
           Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                   5.5 ge
Java EE 5 - Especificações

• Web Application Technologies
  – Java Servlet 2.5
     • JSR-154
  – JavaServer Faces 1.2
     • JSR-252
  – JavaServer Pages 2.1
     • JSR-245
  – JavaServer Pages Standard Tag Library
     • JSR-52




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
Java EE 5 - Especificações

• Enterprise Technologies
   – Enterprise JavaBeans 3.0
       •   JSR-220
   – J2EE Connector Architecture 1.5
       •   JSR-112
   – Common Annotations for the Java Platform
       •   JSR-250
   – Java Message Service API
       •   JSR-914
   – Java Persistence API
       •   JSR-220
   – Java Transaction API (JTA)
       •   JSR-907
   – JavaBeans Activation Framework (JAF) 1.1
       •   JSR-925
   – JavaMail
       •   JSR-919




                                                           Pa
              Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                      5.5 ge
Java EE 5 - Especificações



• Management and Security Technologies
  – J2EE Application Deployment
     • JSR-88
  – J2EE Management
     • JSR-77
  – Java Authorization Contract for Containers
     • JSR-115




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
Java EE 5 x J2EE - Diferenças

• J2EE, poderoso mas complexo
  – Java EE 5 mantêm as características mas de forma muito
    mais simples e produtiva, foco principal da JSR-244

• Características do Java EE 5
  – Annotations
     • Não afeta a semântica diretamente, mas afeta a forma como as
       bibliotecas e as ferramentas tratam o código
  – Conventions (or container defaults)
     • o desenvolvedor deixa a maioria do trabalho de configuração
       para os containers, que fornecem um conjunto bem definido de
       valores default, considerando os casos mais comuns.
       Desenvolvedor usa "Configuration by Exception“.

                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
Java EE 5 x J2EE - Diferenças

• Características do Java EE 5
  – Dependency Injection
     • “Do not call me, I will call you”. As dependências são injetadas
       automaticamente nos componentes pelo container, com ajuda
       das annotations. Não é preciso buscar os recursos
       explicitamente;
  – “boilerplate code” ficou obsoleto e os deployment descriptors
    são opcionais;




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
Java EE 5 x J2EE - Diferenças

• Características do Java EE 5
  – Lightweight Persistence
    • JPA - Modelo de persistência unificado, não limitado a EJBs.
      As classes podem ser usadas em outros componentes,
      inclusive fora do servidor de aplicação. As Entities agora são
      classes POJO, suportando herança e polimorfismo;
  – Entity Manager API
    • principal API do Java EE 5 para interação com banco de
      dados. O EM gerencia o ciclo de vida e estado das entities,
      suportando CRUD, pesquisa, execução de queries (inclusive
      dinâmicas), mecanismo de vinculação, liberação e unificação
      (attach/detach/merge);



                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
Java EE 5 x J2EE - Diferenças

• Características do Java EE 5
  – JP-QL – Java Persistence QL
     • O antigo EJB-QL 2.1 foi melhorado e agora suporta: named
       queries, queries com named parameters, dynamic queries, bulk
       updates e deletes. O JP-QL também suporta queries SQL
       nativas.
     • Características herdadas dos “concorrentes” – JBoss
       Hibernate, Oracle Toplink, JDO.




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
Java EE 5 x J2EE - Diferenças

• Características do Java EE 5
  – JavaServer Faces
     • O JSF permite a construção e controle de GUIs geradas
       dinamicamente pelo servidor através de componentes
       reutilizáveis. O JSF trabalha integrado com a tecnologia JSP e
       ambos possuem uma Expression Language unificada (EL). O
       JSF fornece tratamento de eventos facilitado, validação,
       navegação, suporte I18N e acessibilidade.




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
Java EE 5 x J2EE - Diferenças

• Características do Java EE 5
  – Web Services
     • O suporte ficou mais abrangente, porém mais simples, através
       do JAX-WS e JAXB. Utilização de annotations e defaults,
       dispensando deployment descriptors. Suporte nativo SOAP 1.1,
       SOAP 1.2, XML Schema e extensões para outros protocolos e
       encodings;




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
EJB 3.0 x EJB 2.x

• EJB 2.1
  – Apesar de poderoso (mas incompleto),
    é muito complexo
    •   Muitas classes, interfaces
    •   JNDI lookups
    •   Uso de interfaces do pacote javax.ejb
    •   Modelo de programação confuso
    •   Deployment Descriptors
    •   Anti-patterns - Entity Beans




                                                        Pa
           Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                   5.5 ge
EJB 3.0 x EJB 2.x

• EJB 2.1
  – Limitações
     • Para criar um EJB simples você precisar criar
       vários DDs;
     • Um conjunto de três arquivos fonte (pelo
       menos) deve ser criado;
     • Múltiplos métodos callback devem ser
       implementados e alguns possivelmente nem
       serão usados;
     • Você tem que arremesar e tratar vários tipos
       de exceções, desnecessariamente;
     • Os EJBs não podem ser testados fora do
       container;
     • EJB-QL é limitada e difícil de usar, forçando a
       utilização de JDBC e SQL ou outro
       mecanismo de persistência




                                                         Pa
            Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                    5.5 ge
EJB 3.0
• EJB 3.0 - características

  – Facilidade no desenvolvimento, simplicidade
     •   Poucas classes e interfaces
     •   Dependency Injection (sem JNDI lookups)
     •   Não requer implementação de interfaces
     •   Não requer deployment descriptors (opcional)
     •   Mecanismo de persistência simplificado
     •   Mapeamento O/R robusto (herança, polimorfismo, etc)




                                                        Pa
           Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                   5.5 ge
EJB 3.0
• JSR-000220 Enterprise JavaBeans 3.0 – FR - Specs

  – Desenvolvedores de aplicações que desejam usar EJB 3.0
    • Enterprise JavaBeans 3.0 Final Release (ejbcore)
       – ejb-3_0-fr-spec-ejbcore.pdf
    • Enterprise JavaBeans 3.0 Final Release (persistence)
       – ejb-3_0-fr-spec-persistence.pdf
    • Enterprise JavaBeans 3.0 Final Release (simplified)
       – ejb-3_0-fr-spec-simplified.pdf
  – Desenvolvedores que desejam construir uma implementação
    de EJB 3.0




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
EJB 3.0
• DI – Dependency Injection

  – Os recursos são injetados quando a instância é construída.
    Referências para:

     •   EJBContext
     •   DataSources
     •   UserTransaction
     •   Environment Entries
     •   EntityManager
     •   TimerService
     •   Outros EJBs




                                                        Pa
           Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                   5.5 ge
EJB 3.0
• Client View Simplificada


  – Session beans agora usam interfaces Java simples
     • Não requer EJB(Local)Home interfaces
     • Não requer EJB(Local)Object interfaces

  – A Bean class é uma classe Java simples, portanto:
     • É uma classe Java plana (POJO)
     • Implementa interfaces Java comuns (POJI)




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
EJB 3.0 - Client View
...
@EJB
ShoppingCart myCart;
...
Collection widgets = myCart.startToShop(“widgets”);...


OBS: A versão atual do JBoss (4.0.5) ainda não suporta a annotation
 @EJB. Portanto, ainda é necessário o JNDI lookup (utilizar um
 Service Locator).




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
EJB 3.0
• Persistence API – Objetivos


  – Simplifica o modelo de programação de entities
  – Suporte para modelagem, incluindo herança e polimorfismo
  – Endereça as limitações anteriores que existiam para as
    queries
  – Suporta mapeamento O/R de forma robusta
  – As entidades podem ser usadas (e testadas) fora do
    container
  – Remove a necessidade de VOs/DTOs e outros anti-patterns




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
EJB 3.0
• Entity Manager


  – O EntityManager serve como uma “home” genérica, para
    operações que envolvem entities;
  – Possui métodos para gerenciamento do ciclo de vida
    • Persist, remove, merge, flush, refresh, etc
  – Funcionalidade similar ao Hibernate Session, JDO
    PersistenceManager, etcc




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
EJB 3.0
• Foco – Mapeamento O/R

  – Facilidade para que os desenvolvedores Java executem o
    mapeamento de um modelo de objetos para um banco
    relacional
  – O desenvolvedor fica seguro sobre o mapeamento entre o DB
    Schema e o modelo de domínio dos objetos
    • O desenvolvedor controla o mapeamento
    • O desenvolvedor pode confiar no mapeamento e semântica do
      mesmo
  – Os mapeamentos podem ser expressos usando annotations
    ou XML
    • Mapeametos default são fornecidos



                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
EJB 3.0
• Interoperabilidade com EJB 2.X


  – Aplicações escritas usando a API EJB 2.1 e anteriores
    funcionam sem alterações nos containers EJB 3.0
  – Caminho para migração
    • Novas aplicações usando EJB 3.0 podem ser clientes de EJBs
      antigos (specs anteriores), sem mudanças na cliente view pré-
      existente




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
EJB 3.0 - SLSB
...
@Stateless
public class ServidorFacade implements ServidorFacadeLocal {


      @PersistenceContext
      private EntityManager em;


      /** Creates a new instance of ServidorFacade */
      public ServidorFacade() {
      }


      public void create(Servidor servidor) {
          em.persist(servidor);
      }


      public void edit(Servidor servidor) {
          em.merge(servidor);
      }
...
                                                                   Pa
                      Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                              5.5 ge
EJB 3.0 - SLSB
...
@Local
public interface ServidorFacadeLocal {


      void create(Servidor servidor);


      void edit(Servidor servidor);


      void destroy(Servidor servidor);


      Servidor find(Object pk);


      List findAll();


      List findAllIds();


}
...


                                                                     Pa
                        Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                                5.5 ge
EJB 3.0 - Entities
...
@Entity
@Table(name = "servidor")
@NamedQueries( {
      @NamedQuery(name = "Servidor.findAllIds", query = "SELECT s.codServidor FROM Servidor s ORDER
      BY s.codServidor DESC"),
      @NamedQuery(name = "Servidor.findByCodServidor", query = "SELECT s FROM Servidor s WHERE
      s.codServidor = :codServidor"),... })
public class Servidor implements Serializable {
        @Id
        @Column(name = "COD_SERVIDOR", nullable = false)
        private BigDecimal codServidor;
        @Column(name = "NOM_SERVIDOR", nullable = false)
        private String nomServidor;...
@OneToMany(cascade = CascadeType.ALL, mappedBy = "servidor")
       private java.util.Collection <com.unisys.ciwebview.model.PerfilConfiguracao>
      perfilConfiguracaoCollection;
        /** Creates a new instance of Servidor */
        public Servidor() {
        }
                                                                 Pa
                    Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                            5.5 ge
JSF 1.2
• Características
  – Arquitetura MVC Model 2

  – Framework de componentes de interface (GUI), server side, para
    aplicações web baseadas em tecnologia Java

  – Permite construir uma aplicação utilizando drag-and-drop a
    composição visual

  – Modelo de componentes de interface bem extensível

  – Modelo de renderização flexível

  – Modelo de tratamento de eventos


                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
JSF 1.2
• Características
  – Framework de validação (mais simples que Struts Validator)

  – Suporte ao controle de fluxo (navegação) entre páginas

  – Internacionalização

  – Acessibilidade

  – Suportado por IDEs e ferramentas que possibilitam o
    aumento de produtividade
  – Flexibilidade - Independente do dispositivo cliente


                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
JSF 1.2
• Características
  – Framework de validação (mais simples que Struts Validator)


  – Suporte ao controle de fluxo (navegação) entre páginas


  – Internacionalização


  – Acessibilidade


  – Suportado por IDEs e ferramentas que possibilitam o
    aumento de produtividade



                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
JSF - Arquitetura




                                                   Pa
      Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                              5.5 ge
JSF - Componentes
• Uma página JavaServer Faces é representada por uma
  árvore de componentes, chamada de view
  – Uma view é uma árvore de componentes
  – Conceito familiar considerando o design de interfaces
  – Mapeia bem para o XML
  – Componentes Faces são JavaBeans, eles têm propriedades,
    métodos e eventos/ouvintes
• Os componentes de apoio são anexados aos
  componentes JSF
  – Validators, Converters, Listeners




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
JSF – Componentes GUI




                                                  Pa
     Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                             5.5 ge
JSF – Passos para desenvolvimento
• Passos para o desenvolvimento de uma aplicação JSF
  – 1) Desenvolver as classes do modelo (managed beans) que
    possuem os dados associados ao componente JSF;
  – 2) Adicionar as declarações dos managed beans ao arquivo
    faces-config.xml (elementos <managed-bean>);
  – 3) Criar as páginas JSF (JSP) utilizando os componentes GUI
    e as tag libraries do JSF (JSF Core Tags, JSF HTML Tags);
  – 4) Definir o fluxo de navegação utilizando o arquivo faces-
    config.xml (elementos <navigation-rule>);
  – 5) Configurar o arquivo web.xml da aplicação (configurar
    Faces Servlet, etc).




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
JSF – Passos 1
• Passo 1: Desenvolver os Managed Beans
  – Representa o modelo (M) no MVC
  – O Managed Bean é um componente JavaBean comum com
    um conjunto de métdos get e set para todos os atributos
  – Ele pode conter métodos action (similar Struts
    DispatchAction) e manipuladores de eventos
  – Utilizado para armazenar os dados enviados por uma página
    UI (JSP)
  – A criação e o ciclo de vida são gerenciados pelo JSF runtime
     • application, session, request, etc
  – O JSF runtime mantém os dados do bean sincronizados com
    os dados da interface


                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
JSF – Passos 1
• Passo 1: Desenvolver os Managed Beans
  – Representa o modelo (M) no MVC
  – O Managed Bean é um componente JavaBean comum com
    um conjunto de métdos get e set para todos os atributos
  – Ele pode conter métodos action (similar Struts
    DispatchAction) e manipuladores de eventos
  – Utilizado para armazenar os dados enviados por uma página
    UI (JSP)
  – A criação e o ciclo de vida são gerenciados pelo JSF runtime
     • application, session, request, etc
  – O JSF runtime mantém os dados do bean sincronizados com
    os dados da interface


                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
MB - ServidorHelper.java
public class ServidorHelper { //POJO
  private boolean mode;
  private Servidor servidor = new Servidor();


  public ServidorHelper() { //NO-ARG CONSTRUCTOR
  }
      public String incluirServidor(){ //ACTION METHOD
      ServidorFacadeLocal local = (ServidorFacadeLocal) serviceLocator.lookupFacade(servidorFacade);
      List IDs = local.findAllIds();
      BigDecimal novoID = null;
      if(IDs.isEmpty()){
          novoID = new BigDecimal(0);
      } else{
          novoID = (BigDecimal) IDs.get(0);
      }
      novoID = novoID.add(new BigDecimal(1));
      servidor.setCodServidor(novoID);
      local.create(servidor);
      return NavigationUtils.SUCCESS;
  }
  //SETTERS AND GETTERS
  public Servidor getServidor() {
      return servidor;
  }
  public void setServidor(Servidor servidor) {
      this.servidor = servidor;
  }

                                                                        Pa
                           Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                                   5.5 ge
JSF - Passo 2 - Adicionar MBs > faces-
config.xml
• Adicionar as declarações dos managed beans ao arquivo
  faces-config.xml (elementos <managed-bean>)
   <managed-bean>
   <description>Backing bean for Servidor</description>
   <managed-bean-name>ServidorBean</managed-bean-name>
    <managed-bean-
 class>com.unisys.ciwebview.control.ServidorHelper</managed-bean-
 class>
   <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
JSF - Passo 3 - Criar as páginas JSF
(JSPs)
• Criar as páginas JSF (JSP) utilizando os componentes GUI
  e as tag libraries do JSF (JSF Core Tags, JSF HTML Tags)


  – É obrigatório incluir as tag libraries JSF utilizadas
     • HTML e Core Tags
  – Todas as tags JSF devem estar entre um par de view -
    <f:view> - tags
  – Utilizar os componentes GUI da JSF
     • <h:input_text> e não <input type=”text”>
     • <h:command_button> e não <input type=”submit”>
  – Validators e Event Listeners podem ser definidos para
    qualquer componente JSF


                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
UI Binding – servidor.jsp >
ServidorBean
Arquivo JSP:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
 <f:view>
    <h:form id="servidorForm">
       <h1><h:outputText value="Servidor"/></h1>
       <h:panelGrid columns="3" columnClasses="section">
         <h:outputLabel value="Nome Servidor: " for="nomServidor" />
         <h:inputText id="nomServidor" value="#{ServidorBean.servidor.nomServidor}" required="true" />
         <h:message for="nomServidor" />


      </h:panelGrid>
      <h:panelGroup>
         <h:commandButton id="submitIncluirServidor" action="#{ServidorBean.incluirServidor}" value="Incluir"
   styleClass="inputfonte" rendered="#{not ServidorBean.mode}" />
         <h:commandButton id="submitAtualizarServidor" action="#{ServidorBean.atualizarServidor}"
   value="Atualizar" styleClass="inputfonte" rendered="#{ServidorBean.mode}" />
       </h:panelGroup>
    </h:form>
 </f:view>


                                                               Pa
                  Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                          5.5 ge
JSF - Passo 4 – Regras de Navegação
• Definir o fluxo de navegação utilizando o arquivo faces-
  config.xml (elementos <navigation-rule>)
  – As regras de navegação são configuradas no arquivo faces-
    config.xml

  – O NavigationHandler (default) controla o fluxo baseado em:
     • Qual component tree (ex, página) está sendo processada no
       momento?
     • Originária da página/view (from-view);
     • Qual resultado retornado pela ação?
     • Originária do resultado de uma action (from-outcome);
     • Qual a próxima página a ser exibida (to-view).




                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
JSF - Passo 4 – Regras de Navegação
•   Definir o fluxo de navegação utilizando o arquivo faces-config.xml
<!-- main page -->
    <navigation-rule>
      <from-view-id>/main.jsp</from-view-id>
      <navigation-case>
            <from-outcome>adm_servidores</from-outcome>
            <to-view-id>/adm_servidores.jsp</to-view-id>
      </navigation-case>
    </navigation-rule>
    ...
          <!-- lista servidores -->
    <navigation-rule>
      <from-view-id>/adm_servidores.jsp</from-view-id>
      <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/lista_servidores.jsp</to-view-id>
      </navigation-case>
    </navigation-rule>


                                                                   Pa
                      Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                              5.5 ge
JSF - Passo 5 – configurar web.xml
•     Configurar o arquivo web.xml da aplicação (Faces Servlet, Context Parameters, etc)


<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" ...>...
      <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>true</param-value>
      </context-param>
...
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
      </servlet-mapping>
      ...
</web-app>

                                                                    Pa
                       Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                               5.5 ge
JSF – Componentes (WAR)
• Quais componentes e recursos fazem parte de uma aplicação JSF? Arquivo
  WAR com:
your.jpg
your.jsp
WEB-INF/web.xml
WEB-INF/faces-config.xml
WEB-INF/classes/your.class
WEB-INF/lib/your.jar
(if not running in Java WSDP)
WEB-INF/lib/jsf-api.jar
WEB-INF/lib/jsf-ri.jar
WEB-INF/lib/jstl.jar
WEB-INF/lib/jsf-el.jar
WEB-INF/lib/standard.jar
WEB-INF/lib/commons-beanutils.jar
WEB-INF/lib/commons-digester.jar
WEB-INF/lib/commons-collections.jar
WEB-INF/lib/commons-logging.jar




                                                                Pa
                   Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                           5.5 ge
JSF – Componentes
• Exemplos de componentes JSF comerciais e
  open-source (free):
 – https://javaserverfaces.dev.java.net/
 – https://facelets.dev.java.net/
 – http://myfaces.apache.org/
 – http://component-showcase.icefaces.org/component-show
 – http://livedemo.exadel.com/richfaces-demo/




                                                     Pa
        Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                5.5 ge
NetBeans 5.5
• Características
  – Primeira IDE open-source, free, com suporte a Java 5
  – Suporte desenvolvimento nas três plataformas – JSE, JEE, JME
    (mobile, desktop, web e enterprise)
  – Ambiente open-source, multi-plataforma, 100% Java
  – Fácil instalação, descomplicada e sem a necessidade de plug-ins
    (apenas se utilizado algum framework ou produto específico)
  – Swing GUI Builder, Web Application Development, Enterprise
    Development,
  – Web Services and Application Servers Integration, Developer
    Collaboration, Advanced Source Code Editor, Java Mobility (Java
    ME), Visual Web Development, Service-Oriented Architecture (SOA),
    C/C++ development.
  – Screenshots
     • http://www.netbeans.org/products/ide/screenshots.html



                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge
Case – Site Disponibilização GCI
• Em desenvolvimento, proposta para visualização de
  informações considerando os ambientes do GCI


• Boa oportunidade para uma prova de conceito
  – JSF 1.1, EJB 3.0
  – NetBeans 5.5, Visual Web Pack
  – JBoss 4.0.4, MySQL (dev only)




                                                      Pa
         Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                 5.5 ge
Referências
• JSR 220: Enterprise JavaBeansTM 3.0
  – http://jcp.org/en/jsr/detail?id=220
• JSR 252: JavaServer Faces 1.2
  – http://jcp.org/en/jsr/detail?id=252
• NetBeans 5.5
  – http://www.netbeans.org/
• NetBeans Visual Web Pack 5.5
  – http://www.netbeans.org/products/visualweb/
• JCP – Java Community Process
  – http://jcp.org/en/home/index


                                                       Pa
          Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012
                                                  5.5 ge

Mais conteúdo relacionado

PDF
GlassFish, Maven, Cloud e o futuro do Java EE
Bruno Borges
 
PDF
Java OO Middleware - JEE / EJB / RMI
Yitzhak Stone
 
PDF
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
Rodrigo Cândido da Silva
 
PDF
Introducao EJB 3
Rodrigo Cândido da Silva
 
PDF
GlassFish, Maven, Cloud e Java EE
Bruno Borges
 
PPT
Enterprise JavaBeans simples e descomplicado, na prática
Globalcode
 
ODP
GlassFish e Maven: Java EE sem dor!
Bruno Borges
 
PDF
Java 9, 10, 11
Helder da Rocha
 
GlassFish, Maven, Cloud e o futuro do Java EE
Bruno Borges
 
Java OO Middleware - JEE / EJB / RMI
Yitzhak Stone
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
Rodrigo Cândido da Silva
 
Introducao EJB 3
Rodrigo Cândido da Silva
 
GlassFish, Maven, Cloud e Java EE
Bruno Borges
 
Enterprise JavaBeans simples e descomplicado, na prática
Globalcode
 
GlassFish e Maven: Java EE sem dor!
Bruno Borges
 
Java 9, 10, 11
Helder da Rocha
 

Mais procurados (20)

PDF
MC - Java Enterprise Edition 6 (Java EE)
Rodrigo Cândido da Silva
 
PDF
A arquitetura modular do Java 9
Helder da Rocha
 
PPS
ApresentaçãO Ejb (Enterprise Java Beans)
mauriciopel
 
PDF
Flisolgo2010
Paulo Jerônimo
 
PDF
Tutorial EJB 3.0 (2009)
Helder da Rocha
 
PPTX
Apresentação JSF
Carlos Henrique
 
PPTX
Introdução a jsf
Jorge William Rodrigues
 
PPT
Anatomia do JSF, JavaServer Faces
Rafael Ponte
 
PDF
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Helder da Rocha
 
PPT
JavaServer Faces Produtividade em Desenvolvimento
Eduardo Bregaida
 
ZIP
Visão Geral de EJB 3.0
Fábio Nogueira de Lucena
 
PDF
JSF - JavaServer Faces
netinhoteixeira
 
ODP
JUDCon Brazil 2013
George Gastaldi
 
PDF
Serra StarTec 2013 - Java EE
Rodrigo Cândido da Silva
 
PDF
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte
 
PPTX
Curso jsf
jornaljava
 
PDF
Tutorial Java EE
Rodrigo Cândido da Silva
 
ODP
JSF e outras tecnologias Java Web - IMES.java
Eduardo Bregaida
 
PDF
Java 8 - A Evolução da Linguagem
Petronio Candido
 
MC - Java Enterprise Edition 6 (Java EE)
Rodrigo Cândido da Silva
 
A arquitetura modular do Java 9
Helder da Rocha
 
ApresentaçãO Ejb (Enterprise Java Beans)
mauriciopel
 
Flisolgo2010
Paulo Jerônimo
 
Tutorial EJB 3.0 (2009)
Helder da Rocha
 
Apresentação JSF
Carlos Henrique
 
Introdução a jsf
Jorge William Rodrigues
 
Anatomia do JSF, JavaServer Faces
Rafael Ponte
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Helder da Rocha
 
JavaServer Faces Produtividade em Desenvolvimento
Eduardo Bregaida
 
Visão Geral de EJB 3.0
Fábio Nogueira de Lucena
 
JSF - JavaServer Faces
netinhoteixeira
 
JUDCon Brazil 2013
George Gastaldi
 
Serra StarTec 2013 - Java EE
Rodrigo Cândido da Silva
 
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte
 
Curso jsf
jornaljava
 
Tutorial Java EE
Rodrigo Cândido da Silva
 
JSF e outras tecnologias Java Web - IMES.java
Eduardo Bregaida
 
Java 8 - A Evolução da Linguagem
Petronio Candido
 
Anúncio

Destaque (20)

PDF
resume
Thomas Kuc
 
PPTX
presentaciones
juan77david89
 
PPTX
Seminario estrategias de busqueda
Gonzalo Leiva
 
PPTX
Tendencias Pedagógicas
Janeth Del Socorro Portilla
 
PDF
Relatorio final da Comissão de Estudos da Zona Azul 2009
Chico Macena
 
DOC
Portaria 42
Inova Gestão
 
DOCX
Yohana alejandra murillo
IETI SD
 
PPS
Convite
guest9c7000
 
PDF
Ontario Hydro Substation Program
Ahmed (TRANSCO)
 
PDF
Imagen
angelita-123
 
PDF
Capa - Revista Kambas da Paz
Helder Mequima
 
DOCX
Creacion slideshare
krissacosta
 
DOCX
Mainmap 2
profateremenendez
 
PDF
Dsc0728
cprt34
 
PDF
20160503150350561
Tikaram Kattel
 
PPT
Barreira acústica viária contra ruidos urbanos
Chico Macena
 
PDF
AKI investimneto 100M duplicar rede lojas 10 mar 2016
Osto Andres
 
PDF
Afiche1
vlovazzano
 
PPTX
Economia objeto y metodo
gordis201221
 
resume
Thomas Kuc
 
presentaciones
juan77david89
 
Seminario estrategias de busqueda
Gonzalo Leiva
 
Tendencias Pedagógicas
Janeth Del Socorro Portilla
 
Relatorio final da Comissão de Estudos da Zona Azul 2009
Chico Macena
 
Portaria 42
Inova Gestão
 
Yohana alejandra murillo
IETI SD
 
Convite
guest9c7000
 
Ontario Hydro Substation Program
Ahmed (TRANSCO)
 
Imagen
angelita-123
 
Capa - Revista Kambas da Paz
Helder Mequima
 
Creacion slideshare
krissacosta
 
Dsc0728
cprt34
 
20160503150350561
Tikaram Kattel
 
Barreira acústica viária contra ruidos urbanos
Chico Macena
 
AKI investimneto 100M duplicar rede lojas 10 mar 2016
Osto Andres
 
Afiche1
vlovazzano
 
Economia objeto y metodo
gordis201221
 
Anúncio

Semelhante a Java ee 5 (20)

PDF
Começando com Java EE 6
danferreira
 
PPT
Como Sobreviver Com Java2
Saulo Arruda
 
PPT
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
Rodrigo Cândido da Silva
 
PDF
Java EE 6 e JBoss 6.0
Edgar Silva
 
PPT
Enterprise Java Beans
Rubem Azenha
 
PDF
Repensando padrões e boas práticas java ee
Adriano Tavares
 
PDF
GUJavaSC - Mini-curso Java EE
Rodrigo Cândido da Silva
 
PPT
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
tdc-globalcode
 
PPT
Apresentação servidores de aplicação
Helen Picoli
 
PPT
Web Sphere
Fabricio Carvalho
 
PDF
1409243945064
Fábio Junior
 
PPT
Java v1.1
Waldir R. Pires Jr
 
PDF
Novidades de Java EE 7
pt_programar
 
ODP
As novidades da especificação EJB 3.2
Hugo Lavalle
 
PDF
Java Platform, Enterprise Edition
Daniel Arndt Alves
 
PDF
Conhecendo Java
TI Infnet
 
PDF
Java e net beans
Sliedesharessbarbosa
 
PDF
2902868 desenvolvendo-aplicacoes-web-com-net beans-ide-6
marcelrodriguess
 
PDF
Construindo aplicações web java com netbeans
Sliedesharessbarbosa
 
PDF
Apostilava Java EE 5 - 2007
Rafael Benevides
 
Começando com Java EE 6
danferreira
 
Como Sobreviver Com Java2
Saulo Arruda
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
Rodrigo Cândido da Silva
 
Java EE 6 e JBoss 6.0
Edgar Silva
 
Enterprise Java Beans
Rubem Azenha
 
Repensando padrões e boas práticas java ee
Adriano Tavares
 
GUJavaSC - Mini-curso Java EE
Rodrigo Cândido da Silva
 
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
tdc-globalcode
 
Apresentação servidores de aplicação
Helen Picoli
 
Web Sphere
Fabricio Carvalho
 
1409243945064
Fábio Junior
 
Novidades de Java EE 7
pt_programar
 
As novidades da especificação EJB 3.2
Hugo Lavalle
 
Java Platform, Enterprise Edition
Daniel Arndt Alves
 
Conhecendo Java
TI Infnet
 
Java e net beans
Sliedesharessbarbosa
 
2902868 desenvolvendo-aplicacoes-web-com-net beans-ide-6
marcelrodriguess
 
Construindo aplicações web java com netbeans
Sliedesharessbarbosa
 
Apostilava Java EE 5 - 2007
Rafael Benevides
 

Mais de Juarez Junior (20)

PDF
WeAreDevelopers Berlin - Blazingly Fast GenAI App Development With Java and S...
Juarez Junior
 
PDF
WeAreDevelopers Berlin - LangChain4J - A Guide for Impatient Developers
Juarez Junior
 
PDF
Build Stuff Lithuania - Blazingly Fast GenAI App Development With Java and Sp...
Juarez Junior
 
PDF
DUBJUG-Simplifying Data Access with Jakarta Data for Domain-Driven Design
Juarez Junior
 
PDF
Cloud Lunch and Learn -Microsoft Semantic Kernel for Java
Juarez Junior
 
PDF
Compass AI Budapest -The Trinity in GenAI - Spring AI, LangChain4J and OpenAI
Juarez Junior
 
PDF
GSAS - Global Software Architecture Summit - GenAI-Architectural-Blueprints
Juarez Junior
 
PDF
BaselOne_Langchain4J - A Guide for Impatient Developers
Juarez Junior
 
PDF
DeveloperWeek USA - A Solid Foundation for GenAI Apps - Exploring Architectur...
Juarez Junior
 
PDF
I Love Tech Romania - Blazingly Fast GenAI App Development With Java and Spri...
Juarez Junior
 
PDF
I Love Tech Romania - The Trinity in GenAI - Spring AI, LangChain4J and OpenAI
Juarez Junior
 
PDF
DUBJUG_Blazingly Fast GenAI App Development With Java and Spring AI.pdf
Juarez Junior
 
PDF
DUBJUG_Creating GenAI Apps in Java with SD4J and the ONNX Runtime
Juarez Junior
 
PDF
I Love Tech Romania - A High-Speed Data Ingestion Microservice in Java Using ...
Juarez Junior
 
PDF
DevTalks Cluj Romania - A Solid Foundation for GenAI Apps.pdf
Juarez Junior
 
PDF
Quarkus Club_Java Virtual Threads & Pipelined Database Operations
Juarez Junior
 
PDF
Quarkus Club_Revolutionize Java Database App Development with Reactive Stream...
Juarez Junior
 
PDF
TDC - The Developers Conference - The Trinity in GenAI - Spring AI, LangChain...
Juarez Junior
 
PDF
TDC - The Developers Conference - Creating GenAI Apps in Java with SD4J and t...
Juarez Junior
 
PDF
TDC - The Developers Conference - An Introduction to Machine Learning in Java...
Juarez Junior
 
WeAreDevelopers Berlin - Blazingly Fast GenAI App Development With Java and S...
Juarez Junior
 
WeAreDevelopers Berlin - LangChain4J - A Guide for Impatient Developers
Juarez Junior
 
Build Stuff Lithuania - Blazingly Fast GenAI App Development With Java and Sp...
Juarez Junior
 
DUBJUG-Simplifying Data Access with Jakarta Data for Domain-Driven Design
Juarez Junior
 
Cloud Lunch and Learn -Microsoft Semantic Kernel for Java
Juarez Junior
 
Compass AI Budapest -The Trinity in GenAI - Spring AI, LangChain4J and OpenAI
Juarez Junior
 
GSAS - Global Software Architecture Summit - GenAI-Architectural-Blueprints
Juarez Junior
 
BaselOne_Langchain4J - A Guide for Impatient Developers
Juarez Junior
 
DeveloperWeek USA - A Solid Foundation for GenAI Apps - Exploring Architectur...
Juarez Junior
 
I Love Tech Romania - Blazingly Fast GenAI App Development With Java and Spri...
Juarez Junior
 
I Love Tech Romania - The Trinity in GenAI - Spring AI, LangChain4J and OpenAI
Juarez Junior
 
DUBJUG_Blazingly Fast GenAI App Development With Java and Spring AI.pdf
Juarez Junior
 
DUBJUG_Creating GenAI Apps in Java with SD4J and the ONNX Runtime
Juarez Junior
 
I Love Tech Romania - A High-Speed Data Ingestion Microservice in Java Using ...
Juarez Junior
 
DevTalks Cluj Romania - A Solid Foundation for GenAI Apps.pdf
Juarez Junior
 
Quarkus Club_Java Virtual Threads & Pipelined Database Operations
Juarez Junior
 
Quarkus Club_Revolutionize Java Database App Development with Reactive Stream...
Juarez Junior
 
TDC - The Developers Conference - The Trinity in GenAI - Spring AI, LangChain...
Juarez Junior
 
TDC - The Developers Conference - Creating GenAI Apps in Java with SD4J and t...
Juarez Junior
 
TDC - The Developers Conference - An Introduction to Machine Learning in Java...
Juarez Junior
 

Java ee 5

  • 1. Java EE 5 - EJB 3.0, JSF 1.2 e NetBeans 5.5 Jul 23, 2012 Page 1
  • 2. Java EE 5 – EJB 3.0, JSF 1.2, NetBeans IDE 5.5 – Case Site Disponibilização O novo Java Enterprise Edition – EJB 3.0, JSF 1.2 e NetBeans IDE 5.5 – Juarez Barbosa – Systems Architect Java EE 5 - EJB 3.0, JSF 1.2 e NetBeans 5.5 Jul 23, 2012 Page 2
  • 3. Objetivos • Apresentar a nova versão da plataforma Java Enterprise Edition – Java EE 5 • Apresentar a API Enterprise JavaBeans – EJB 3.0 – JSR - 220 • Apresentar a API Java ServerFaces – JSF 1.2 – JSR - 252 • Apresentar a IDE NetBeans 5.5 e o Visual Web Pack Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 4. Agenda • Introdução Java EE 5 - Overview • EJB 3.0 • JSF 1.2 • NetBeans 5.5 • Case Site Disponibilização e apresentação de exemplos de código Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 5. Java EE 5 • “Java EE 5 significantly reduces the cost and complexity of developing and deploying multi-tier solutions, resulting in services that can be rapidly deployed and easily enhanced.” • Especificação Java EE 5 (umbrella) – Java Platform, Enterprise Edition 5 (Java EE 5) • JSR-244 Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 6. Java EE 5 - Especificações • Web Services Technologies – Implementing Enterprise Web Services • JSR-109 – Java API for XML-Based Web Services (JAX-WS) 2.0 • JSR-224 – Java API for XML-Based RPC (JAX-RPC) 1.1 • JSR-101 – Java Architecture for XML Binding (JAXB) 2.0 • JSR-222 – SOAP with Attachments API for Java (SAAJ) • JSR-67 – Streaming API for XML • JSR-173 – Web Service Metadata for the Java Platform • JSR-181 Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 7. Java EE 5 - Especificações • Web Application Technologies – Java Servlet 2.5 • JSR-154 – JavaServer Faces 1.2 • JSR-252 – JavaServer Pages 2.1 • JSR-245 – JavaServer Pages Standard Tag Library • JSR-52 Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 8. Java EE 5 - Especificações • Enterprise Technologies – Enterprise JavaBeans 3.0 • JSR-220 – J2EE Connector Architecture 1.5 • JSR-112 – Common Annotations for the Java Platform • JSR-250 – Java Message Service API • JSR-914 – Java Persistence API • JSR-220 – Java Transaction API (JTA) • JSR-907 – JavaBeans Activation Framework (JAF) 1.1 • JSR-925 – JavaMail • JSR-919 Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 9. Java EE 5 - Especificações • Management and Security Technologies – J2EE Application Deployment • JSR-88 – J2EE Management • JSR-77 – Java Authorization Contract for Containers • JSR-115 Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 10. Java EE 5 x J2EE - Diferenças • J2EE, poderoso mas complexo – Java EE 5 mantêm as características mas de forma muito mais simples e produtiva, foco principal da JSR-244 • Características do Java EE 5 – Annotations • Não afeta a semântica diretamente, mas afeta a forma como as bibliotecas e as ferramentas tratam o código – Conventions (or container defaults) • o desenvolvedor deixa a maioria do trabalho de configuração para os containers, que fornecem um conjunto bem definido de valores default, considerando os casos mais comuns. Desenvolvedor usa "Configuration by Exception“. Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 11. Java EE 5 x J2EE - Diferenças • Características do Java EE 5 – Dependency Injection • “Do not call me, I will call you”. As dependências são injetadas automaticamente nos componentes pelo container, com ajuda das annotations. Não é preciso buscar os recursos explicitamente; – “boilerplate code” ficou obsoleto e os deployment descriptors são opcionais; Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 12. Java EE 5 x J2EE - Diferenças • Características do Java EE 5 – Lightweight Persistence • JPA - Modelo de persistência unificado, não limitado a EJBs. As classes podem ser usadas em outros componentes, inclusive fora do servidor de aplicação. As Entities agora são classes POJO, suportando herança e polimorfismo; – Entity Manager API • principal API do Java EE 5 para interação com banco de dados. O EM gerencia o ciclo de vida e estado das entities, suportando CRUD, pesquisa, execução de queries (inclusive dinâmicas), mecanismo de vinculação, liberação e unificação (attach/detach/merge); Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 13. Java EE 5 x J2EE - Diferenças • Características do Java EE 5 – JP-QL – Java Persistence QL • O antigo EJB-QL 2.1 foi melhorado e agora suporta: named queries, queries com named parameters, dynamic queries, bulk updates e deletes. O JP-QL também suporta queries SQL nativas. • Características herdadas dos “concorrentes” – JBoss Hibernate, Oracle Toplink, JDO. Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 14. Java EE 5 x J2EE - Diferenças • Características do Java EE 5 – JavaServer Faces • O JSF permite a construção e controle de GUIs geradas dinamicamente pelo servidor através de componentes reutilizáveis. O JSF trabalha integrado com a tecnologia JSP e ambos possuem uma Expression Language unificada (EL). O JSF fornece tratamento de eventos facilitado, validação, navegação, suporte I18N e acessibilidade. Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 15. Java EE 5 x J2EE - Diferenças • Características do Java EE 5 – Web Services • O suporte ficou mais abrangente, porém mais simples, através do JAX-WS e JAXB. Utilização de annotations e defaults, dispensando deployment descriptors. Suporte nativo SOAP 1.1, SOAP 1.2, XML Schema e extensões para outros protocolos e encodings; Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 16. EJB 3.0 x EJB 2.x • EJB 2.1 – Apesar de poderoso (mas incompleto), é muito complexo • Muitas classes, interfaces • JNDI lookups • Uso de interfaces do pacote javax.ejb • Modelo de programação confuso • Deployment Descriptors • Anti-patterns - Entity Beans Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 17. EJB 3.0 x EJB 2.x • EJB 2.1 – Limitações • Para criar um EJB simples você precisar criar vários DDs; • Um conjunto de três arquivos fonte (pelo menos) deve ser criado; • Múltiplos métodos callback devem ser implementados e alguns possivelmente nem serão usados; • Você tem que arremesar e tratar vários tipos de exceções, desnecessariamente; • Os EJBs não podem ser testados fora do container; • EJB-QL é limitada e difícil de usar, forçando a utilização de JDBC e SQL ou outro mecanismo de persistência Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 18. EJB 3.0 • EJB 3.0 - características – Facilidade no desenvolvimento, simplicidade • Poucas classes e interfaces • Dependency Injection (sem JNDI lookups) • Não requer implementação de interfaces • Não requer deployment descriptors (opcional) • Mecanismo de persistência simplificado • Mapeamento O/R robusto (herança, polimorfismo, etc) Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 19. EJB 3.0 • JSR-000220 Enterprise JavaBeans 3.0 – FR - Specs – Desenvolvedores de aplicações que desejam usar EJB 3.0 • Enterprise JavaBeans 3.0 Final Release (ejbcore) – ejb-3_0-fr-spec-ejbcore.pdf • Enterprise JavaBeans 3.0 Final Release (persistence) – ejb-3_0-fr-spec-persistence.pdf • Enterprise JavaBeans 3.0 Final Release (simplified) – ejb-3_0-fr-spec-simplified.pdf – Desenvolvedores que desejam construir uma implementação de EJB 3.0 Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 20. EJB 3.0 • DI – Dependency Injection – Os recursos são injetados quando a instância é construída. Referências para: • EJBContext • DataSources • UserTransaction • Environment Entries • EntityManager • TimerService • Outros EJBs Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 21. EJB 3.0 • Client View Simplificada – Session beans agora usam interfaces Java simples • Não requer EJB(Local)Home interfaces • Não requer EJB(Local)Object interfaces – A Bean class é uma classe Java simples, portanto: • É uma classe Java plana (POJO) • Implementa interfaces Java comuns (POJI) Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 22. EJB 3.0 - Client View ... @EJB ShoppingCart myCart; ... Collection widgets = myCart.startToShop(“widgets”);... OBS: A versão atual do JBoss (4.0.5) ainda não suporta a annotation @EJB. Portanto, ainda é necessário o JNDI lookup (utilizar um Service Locator). Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 23. EJB 3.0 • Persistence API – Objetivos – Simplifica o modelo de programação de entities – Suporte para modelagem, incluindo herança e polimorfismo – Endereça as limitações anteriores que existiam para as queries – Suporta mapeamento O/R de forma robusta – As entidades podem ser usadas (e testadas) fora do container – Remove a necessidade de VOs/DTOs e outros anti-patterns Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 24. EJB 3.0 • Entity Manager – O EntityManager serve como uma “home” genérica, para operações que envolvem entities; – Possui métodos para gerenciamento do ciclo de vida • Persist, remove, merge, flush, refresh, etc – Funcionalidade similar ao Hibernate Session, JDO PersistenceManager, etcc Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 25. EJB 3.0 • Foco – Mapeamento O/R – Facilidade para que os desenvolvedores Java executem o mapeamento de um modelo de objetos para um banco relacional – O desenvolvedor fica seguro sobre o mapeamento entre o DB Schema e o modelo de domínio dos objetos • O desenvolvedor controla o mapeamento • O desenvolvedor pode confiar no mapeamento e semântica do mesmo – Os mapeamentos podem ser expressos usando annotations ou XML • Mapeametos default são fornecidos Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 26. EJB 3.0 • Interoperabilidade com EJB 2.X – Aplicações escritas usando a API EJB 2.1 e anteriores funcionam sem alterações nos containers EJB 3.0 – Caminho para migração • Novas aplicações usando EJB 3.0 podem ser clientes de EJBs antigos (specs anteriores), sem mudanças na cliente view pré- existente Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 27. EJB 3.0 - SLSB ... @Stateless public class ServidorFacade implements ServidorFacadeLocal { @PersistenceContext private EntityManager em; /** Creates a new instance of ServidorFacade */ public ServidorFacade() { } public void create(Servidor servidor) { em.persist(servidor); } public void edit(Servidor servidor) { em.merge(servidor); } ... Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 28. EJB 3.0 - SLSB ... @Local public interface ServidorFacadeLocal { void create(Servidor servidor); void edit(Servidor servidor); void destroy(Servidor servidor); Servidor find(Object pk); List findAll(); List findAllIds(); } ... Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 29. EJB 3.0 - Entities ... @Entity @Table(name = "servidor") @NamedQueries( { @NamedQuery(name = "Servidor.findAllIds", query = "SELECT s.codServidor FROM Servidor s ORDER BY s.codServidor DESC"), @NamedQuery(name = "Servidor.findByCodServidor", query = "SELECT s FROM Servidor s WHERE s.codServidor = :codServidor"),... }) public class Servidor implements Serializable { @Id @Column(name = "COD_SERVIDOR", nullable = false) private BigDecimal codServidor; @Column(name = "NOM_SERVIDOR", nullable = false) private String nomServidor;... @OneToMany(cascade = CascadeType.ALL, mappedBy = "servidor") private java.util.Collection <com.unisys.ciwebview.model.PerfilConfiguracao> perfilConfiguracaoCollection; /** Creates a new instance of Servidor */ public Servidor() { } Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 30. JSF 1.2 • Características – Arquitetura MVC Model 2 – Framework de componentes de interface (GUI), server side, para aplicações web baseadas em tecnologia Java – Permite construir uma aplicação utilizando drag-and-drop a composição visual – Modelo de componentes de interface bem extensível – Modelo de renderização flexível – Modelo de tratamento de eventos Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 31. JSF 1.2 • Características – Framework de validação (mais simples que Struts Validator) – Suporte ao controle de fluxo (navegação) entre páginas – Internacionalização – Acessibilidade – Suportado por IDEs e ferramentas que possibilitam o aumento de produtividade – Flexibilidade - Independente do dispositivo cliente Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 32. JSF 1.2 • Características – Framework de validação (mais simples que Struts Validator) – Suporte ao controle de fluxo (navegação) entre páginas – Internacionalização – Acessibilidade – Suportado por IDEs e ferramentas que possibilitam o aumento de produtividade Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 33. JSF - Arquitetura Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 34. JSF - Componentes • Uma página JavaServer Faces é representada por uma árvore de componentes, chamada de view – Uma view é uma árvore de componentes – Conceito familiar considerando o design de interfaces – Mapeia bem para o XML – Componentes Faces são JavaBeans, eles têm propriedades, métodos e eventos/ouvintes • Os componentes de apoio são anexados aos componentes JSF – Validators, Converters, Listeners Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 35. JSF – Componentes GUI Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 36. JSF – Passos para desenvolvimento • Passos para o desenvolvimento de uma aplicação JSF – 1) Desenvolver as classes do modelo (managed beans) que possuem os dados associados ao componente JSF; – 2) Adicionar as declarações dos managed beans ao arquivo faces-config.xml (elementos <managed-bean>); – 3) Criar as páginas JSF (JSP) utilizando os componentes GUI e as tag libraries do JSF (JSF Core Tags, JSF HTML Tags); – 4) Definir o fluxo de navegação utilizando o arquivo faces- config.xml (elementos <navigation-rule>); – 5) Configurar o arquivo web.xml da aplicação (configurar Faces Servlet, etc). Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 37. JSF – Passos 1 • Passo 1: Desenvolver os Managed Beans – Representa o modelo (M) no MVC – O Managed Bean é um componente JavaBean comum com um conjunto de métdos get e set para todos os atributos – Ele pode conter métodos action (similar Struts DispatchAction) e manipuladores de eventos – Utilizado para armazenar os dados enviados por uma página UI (JSP) – A criação e o ciclo de vida são gerenciados pelo JSF runtime • application, session, request, etc – O JSF runtime mantém os dados do bean sincronizados com os dados da interface Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 38. JSF – Passos 1 • Passo 1: Desenvolver os Managed Beans – Representa o modelo (M) no MVC – O Managed Bean é um componente JavaBean comum com um conjunto de métdos get e set para todos os atributos – Ele pode conter métodos action (similar Struts DispatchAction) e manipuladores de eventos – Utilizado para armazenar os dados enviados por uma página UI (JSP) – A criação e o ciclo de vida são gerenciados pelo JSF runtime • application, session, request, etc – O JSF runtime mantém os dados do bean sincronizados com os dados da interface Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 39. MB - ServidorHelper.java public class ServidorHelper { //POJO private boolean mode; private Servidor servidor = new Servidor(); public ServidorHelper() { //NO-ARG CONSTRUCTOR } public String incluirServidor(){ //ACTION METHOD ServidorFacadeLocal local = (ServidorFacadeLocal) serviceLocator.lookupFacade(servidorFacade); List IDs = local.findAllIds(); BigDecimal novoID = null; if(IDs.isEmpty()){ novoID = new BigDecimal(0); } else{ novoID = (BigDecimal) IDs.get(0); } novoID = novoID.add(new BigDecimal(1)); servidor.setCodServidor(novoID); local.create(servidor); return NavigationUtils.SUCCESS; } //SETTERS AND GETTERS public Servidor getServidor() { return servidor; } public void setServidor(Servidor servidor) { this.servidor = servidor; } Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 40. JSF - Passo 2 - Adicionar MBs > faces- config.xml • Adicionar as declarações dos managed beans ao arquivo faces-config.xml (elementos <managed-bean>) <managed-bean> <description>Backing bean for Servidor</description> <managed-bean-name>ServidorBean</managed-bean-name> <managed-bean- class>com.unisys.ciwebview.control.ServidorHelper</managed-bean- class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 41. JSF - Passo 3 - Criar as páginas JSF (JSPs) • Criar as páginas JSF (JSP) utilizando os componentes GUI e as tag libraries do JSF (JSF Core Tags, JSF HTML Tags) – É obrigatório incluir as tag libraries JSF utilizadas • HTML e Core Tags – Todas as tags JSF devem estar entre um par de view - <f:view> - tags – Utilizar os componentes GUI da JSF • <h:input_text> e não <input type=”text”> • <h:command_button> e não <input type=”submit”> – Validators e Event Listeners podem ser definidos para qualquer componente JSF Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 42. UI Binding – servidor.jsp > ServidorBean Arquivo JSP: <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <f:view> <h:form id="servidorForm"> <h1><h:outputText value="Servidor"/></h1> <h:panelGrid columns="3" columnClasses="section"> <h:outputLabel value="Nome Servidor: " for="nomServidor" /> <h:inputText id="nomServidor" value="#{ServidorBean.servidor.nomServidor}" required="true" /> <h:message for="nomServidor" /> </h:panelGrid> <h:panelGroup> <h:commandButton id="submitIncluirServidor" action="#{ServidorBean.incluirServidor}" value="Incluir" styleClass="inputfonte" rendered="#{not ServidorBean.mode}" /> <h:commandButton id="submitAtualizarServidor" action="#{ServidorBean.atualizarServidor}" value="Atualizar" styleClass="inputfonte" rendered="#{ServidorBean.mode}" /> </h:panelGroup> </h:form> </f:view> Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 43. JSF - Passo 4 – Regras de Navegação • Definir o fluxo de navegação utilizando o arquivo faces- config.xml (elementos <navigation-rule>) – As regras de navegação são configuradas no arquivo faces- config.xml – O NavigationHandler (default) controla o fluxo baseado em: • Qual component tree (ex, página) está sendo processada no momento? • Originária da página/view (from-view); • Qual resultado retornado pela ação? • Originária do resultado de uma action (from-outcome); • Qual a próxima página a ser exibida (to-view). Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 44. JSF - Passo 4 – Regras de Navegação • Definir o fluxo de navegação utilizando o arquivo faces-config.xml <!-- main page --> <navigation-rule> <from-view-id>/main.jsp</from-view-id> <navigation-case> <from-outcome>adm_servidores</from-outcome> <to-view-id>/adm_servidores.jsp</to-view-id> </navigation-case> </navigation-rule> ... <!-- lista servidores --> <navigation-rule> <from-view-id>/adm_servidores.jsp</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/lista_servidores.jsp</to-view-id> </navigation-case> </navigation-rule> Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 45. JSF - Passo 5 – configurar web.xml • Configurar o arquivo web.xml da aplicação (Faces Servlet, Context Parameters, etc) <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" ...>... <context-param> <param-name>com.sun.faces.validateXml</param-name> <param-value>true</param-value> </context-param> ... <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> ... </web-app> Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 46. JSF – Componentes (WAR) • Quais componentes e recursos fazem parte de uma aplicação JSF? Arquivo WAR com: your.jpg your.jsp WEB-INF/web.xml WEB-INF/faces-config.xml WEB-INF/classes/your.class WEB-INF/lib/your.jar (if not running in Java WSDP) WEB-INF/lib/jsf-api.jar WEB-INF/lib/jsf-ri.jar WEB-INF/lib/jstl.jar WEB-INF/lib/jsf-el.jar WEB-INF/lib/standard.jar WEB-INF/lib/commons-beanutils.jar WEB-INF/lib/commons-digester.jar WEB-INF/lib/commons-collections.jar WEB-INF/lib/commons-logging.jar Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 47. JSF – Componentes • Exemplos de componentes JSF comerciais e open-source (free): – https://javaserverfaces.dev.java.net/ – https://facelets.dev.java.net/ – http://myfaces.apache.org/ – http://component-showcase.icefaces.org/component-show – http://livedemo.exadel.com/richfaces-demo/ Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 48. NetBeans 5.5 • Características – Primeira IDE open-source, free, com suporte a Java 5 – Suporte desenvolvimento nas três plataformas – JSE, JEE, JME (mobile, desktop, web e enterprise) – Ambiente open-source, multi-plataforma, 100% Java – Fácil instalação, descomplicada e sem a necessidade de plug-ins (apenas se utilizado algum framework ou produto específico) – Swing GUI Builder, Web Application Development, Enterprise Development, – Web Services and Application Servers Integration, Developer Collaboration, Advanced Source Code Editor, Java Mobility (Java ME), Visual Web Development, Service-Oriented Architecture (SOA), C/C++ development. – Screenshots • http://www.netbeans.org/products/ide/screenshots.html Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 49. Case – Site Disponibilização GCI • Em desenvolvimento, proposta para visualização de informações considerando os ambientes do GCI • Boa oportunidade para uma prova de conceito – JSF 1.1, EJB 3.0 – NetBeans 5.5, Visual Web Pack – JBoss 4.0.4, MySQL (dev only) Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge
  • 50. Referências • JSR 220: Enterprise JavaBeansTM 3.0 – http://jcp.org/en/jsr/detail?id=220 • JSR 252: JavaServer Faces 1.2 – http://jcp.org/en/jsr/detail?id=252 • NetBeans 5.5 – http://www.netbeans.org/ • NetBeans Visual Web Pack 5.5 – http://www.netbeans.org/products/visualweb/ • JCP – Java Community Process – http://jcp.org/en/home/index Pa Java EE 5 - EJB 3.0, JSF 1.2 e NetBeansJul 23, 2012 5.5 ge