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.
Componente | JSR | Tomcat | PluME | Implementação |
---|---|---|---|---|
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 ...