Apache TomEE: desenvolvimento de aplicações corporativas
Artigos Java Desenvolvimento de aplicações corporativas com Apache TomEE
O desenvolvimento de aplicações corporativas é uma atividade complexa que requer cuidados com transações, portabilidade, interoperabilidade, segurança, entre outros aspectos. Assim, a utilização de um servidor Java EE pode simplificar consideravelmente essas preocupações, deixando aos cuidados do servidor o gerenciamento destes recursos. Ciente disso e visando apresentar uma alternativa aos desenvolvedores e arquitetos, a Apache lançou, em abril de 2012, o Apache TomEE, um servidor leve e robusto, baseado no Apache Tomcat, que implementa as especificações da plataforma Java EE.
Considerando essa opção, este artigo apresenta os recursos desse servidor de aplicações e demonstra, através de um exemplo prático, os ganhos que ele traz para aqueles que precisam desenvolver aplicações corporativas, mas querem evitar as preocupações com bibliotecas e suas dependências. Ao adotá-lo, os esforços serão concentrados nos requisitos funcionais, agilizando e simplificando o processo de desenvolvimento.
Embora exista no mercado servidores como WildFly, GlassFish, WebSphere, entre outros, o Apache Tomcat tem sido a alternativa mais popular e viável para a maioria dos desenvolvedores de aplicações Java. Apesar disso, apenas as tecnologias JSP e Servlet, implementadas pelo Tomcat, não atendem, em sua maioria, às demandas das soluções modernas. Com a evolução da plataforma Java EE, observa-se que há um grande abismo entre os recursos oferecidos pelo Tomcat e os necessários para a implementação de aplicações mais robustas, que envolvam vários componentes.
É claro que, ao criar uma aplicação corporativa é possível adicionar bibliotecas aos projetos e assim ampliar as possibilidades de desenvolvimento. No entanto, nesses casos fica a cargo do desenvolvedor identificar quais bibliotecas precisam ser adicionadas, assegurando que elas funcionarão corretamente e que não haverá conflito entre versões. O Apache TomEE, por ser um servidor Java EE, traz consigo implementações de várias APIs que ajudam a preencher esta lacuna.
No artigo "Conhecendo o Apache Tomcat e o TomEE", publicado na Java Magazine 146 (veja a seção Links), falamos sobre a origem deste servidor de aplicações que, baseado no Tomcat e sob o guarda-chuva da Apache Software Foundation, se apresenta como uma alternativa promissora aos servidores de aplicações pré-estabelecidos.
Neste artigo, apresentaremos os recursos que demonstram o poder do Apache TomEE. Para isso, faremos uma breve consideração sobre as versões disponíveis para download, falaremos sobre a configuração do ambiente de desenvolvimento e em seguida iniciaremos a implementação da aplicação utilizando os recursos Java EE de forma que seja possível rodá-la no TomEE. Após a leitura e a execução do exemplo, o leitor verá como é fácil e prático construir aplicações corporativas com esse servidor.
Download do Apache TomEE
Antes de iniciarmos, é importante lembrar que o Apache TomEE está disponível em três distribuições: Perfil Web (Web Profile), JAX-RS e Plus. A primeira, compatível com o Perfil Web da especificação Java EE 6; a segunda, também construída com base no Perfil Web, mas contando com a adição do suporte a JAX-RS, através de uma versão simplificada do Apache CXF; e a distribuição Plus, que fornece um pacote completo com todos os componentes disponíveis para TomEE, incluindo JMS, JAX-WS e JCA. Ambas as distribuições estão disponíveis na versão 1.7.3 e rodam sobre o Apache Tomcat 7.x.
Além destas, já está disponível o TomEE 7.0 Milestone 1, que roda sobre o Tomcat 8.x e encontra-se na fase de testes. No exemplo que estamos desenvolvendo trabalharemos com a distribuição PluME versão 1.7.3, que utiliza as implementações Mojarra, para JSF, e Eclipse Link, para JPA (ver Tabela 1). O site para download do Apache TomEE está disponível na seção Links.
Tabela 1. Especificações Java EE 6 e implementações utilizadas pelo Apache TomEE PluME.
Servlets 3.x 315 ü ü Apache Tomcat
JavaServer Pages (JSP) 245 ü ü Apache Tomcat
Java Standard Tag Library (JSTL) 52 ü ü Apache Tomcat
JavaServer Faces (JSF) 314 ü Oracle Mojarra
Java Transaction API (JTA) 907 ü Apache Geronimo
Java Persistence API (JPA) 317 ü Eclipse Link
Java Context and Dependency Injection (CDI) 299 ü Apache OpenWebBeans
Java Authentication and Authorization Service (JAAS) 196 ü Apache Geronimo
Java Authorization Contract for Containers (JACC) 115 ü Apache Geronimo
JavaMail API 919 ü Apache Geronimo
Bean Validation 303 ü Apache BVal
Enterprise JavaBeans (EJB) 318 ü Apache OpenEJB
Java API for RESTful Web Services (JAX-RS) 311 ü Apache CXF
Java API for XML Web Services (JAX-WS) 224 ü Apache CXF
Java EE Connector Architecture (JCA) 323 ü Apache Geronimo
Java Messaging Service (JMS) 919 ü Apache ActiveMQ
Para rodar o Apache TomEE é necessário instalar o Java Development Kit e configurar a variável de ambiente JAVA_HOME. Embora não seja necessário para o nosso exemplo, também é interessante adicionar a variável CATALINA_HOME apontando para a pasta principal do TomEE, que neste exemplo refere-se à c:\apache-tomee-plume-1.7.3.
As distribuições do TomEE, disponíveis no site, estão compactadas no formato zip ou gzip. Após o download e a descompactação do servidor, é possível executá-lo no ambiente Windows através da linha de comando ou com um clique duplo no arquivo startup.bat. C ...