Apache TomEE(发音为”Tommy“)是一个通过Java EE 6 Web Profile认证的全功能Apache容器,其中Apache Tomcat是组合的中间力量。Apache TomEE从一个普通的Apache Tomcat压缩包上编译而来。我们可以从Apache Tomcat开始,增加我们的jar文件然后打包。结果就得到的Tomcat具有了JavaEE功能——TomEE。
TomEE包含以下4个版本。基础版本为Web Profile,其他3个版本都是建立在Web Profile之上。
Web Profile(JavaEE 6认证)主要特性及实现方式
CDI — Apache OpenWebBeans
EJB — Apache OpenEJB
JPA — Apache OpenJPA
JSF — Apache MyFaces
JSP — Apache Tomcat
JSTL — Apache Tomcat
JTA — Apache Geronimo Transaction
Servlet — Apache Tomcat
Javamail — Apache Geronimo JavaMail
Bean验证— Apache BVal
JAX-RS版本(JavaEE 6认证)主要特性
支持JAX-RS(Restful Service)
Plus版本(JavaEE 6 未认证)主要特性:
支持JAX-RS
支持JAX-WS
支持JMS
支持Connector
Plume版本(JavaEE 6 未认证)主要特性:
遵循一些核心重点引导整合:
不与Tomcat混在一起
把事情简单化
避免过度架构
尽管已经存在一些成熟的应用程序服务器,其中许多都包含了Tomcat部分或者以精简的形式存在。然而这些应用程序服务器不是TomEE,所以加强Tomcat安装的需求一直存在。
Apache TomEE是从一个寻常的Apache Tomcat压缩包上编译过来的。我们可以从Apache Tomcat开始,增加我们的jar文件然后打包。结果就是Tomcat具有了JavaEE的功能——TomEE。
Tomcat提供了大量钩子(hook)可以来填充其部分的生命周期。 我们利用钩子来填补空白,结果带来了大量的共享!
Servlet现在可以访问JPA和事务,EJB可以访问Tomcat提供的安全模块。任何Tomcat提供的资源,比如context.xml,可以被系统托管的组件查找或者注入。
保持紧凑,保持简单
Apache TomEE定义了一个”少即是多”的理论。当开发一个应用服务器的时候,很容易因为简单而走得更远。结果通常启动缓慢占用内存,这样很讨厌。我们不打算创建一个超灵活、超级强大、无限组合的、面向任何人的全功能平台。我们用最简单的方式通过Java EE 6 Web Profile认证。
如果你想使用普通的Tomcat的安装并集成缺少的必备组件,最后你会找到TomEE。 结果不言自明:
运行没有任何额外的内存需求
兼容大多数Tomcat识别工具
兼容Tomcat的测试应用程序
Apache中TomEE的上一个版本,它只是简单地被称为OpenEJB的+ Tomcat集成。 这种描述总是很容易产生误导。 其一,即是不使用EJB,TomEE也有令人难以置信的好处。
相当简单,相比于其他规范,EJB是集成了最多的规格的技术。 TomEE包含JMS、Web Servics、Connectors、Servlets(EJB的WebServices仍然是由Servlet驱动的!)、JPA、JDBC、事务、安全。 所有这些技术整合需要时间和专业知识,最终已经很少和EJB相关了。 要应用这一切到Tomcat,并从一个简单的Servlet使用这些规范,自然需要扩展Tomcat。因为大部分应用服务器一开始是用作EJB服务器。
虽然大多数应用服务器去除了 Tomcat环境,Apache OpenEJB一直作为一个微小的,不可见的嵌入的容器。自然而然的方法是嵌入“EE”到Tomcat,而不是其他方法。
但最终,它不是关于EJB的。 而是关于其他规范:ActiveMQ、CXF、MyFaces、OpenJPA、OpenWebBeans,当然还有Tomcat! 所以这个不再是OpenEJB+Tomcat而是TomEE!
开发资源