我了解 Apache TomEE 是一个常规的 Tomcat 安装,其中 openejb 作为 Web 应用程序。
我试图了解所有这些 Bootstrap 。我会试着问几个有针对性的问题:
任何其他重要信息。
请您参考如下方法:
集成通过 conf/server.xml
中的这一行进行引导。 :
<Listener className="org.apache.tomee.loader.OpenEJBListener" />
这会在启动任何应用程序之前立即发生。来自
<tomcat-home>/webapps/openejb/lib
的库目录被添加到 Tomcat 系统类加载器,安装另一个监听器以参与部署,从那时起,一切都使用 Tomcat 生命周期中的事件发生。 Tomcat 将在应用程序启动(部署)和关闭时发出几个事件。 Tomcat 本身使用它们来部署 servlet,本质上集成只是更多相同。包括 Tomcat 在内的其他供应商也使用这些 Hook 。从这个角度来看,集成真的很无聊:)
唯一有趣的转折是将额外的库放在一个 war 文件中。这样做实际上只是为了尽可能简单地向现有 Tomcat 安装交付和添加额外的库(并且尽可能容易地删除)。来自
<tomcat-home>/webapps/openejb/lib
的所有库可以直接进入
<tomcat-home>/lib
.在这一点上,您可能唯一想要的
webapss/openejb/
war for 是为了能够通过 HTTP 调用 EJB。
所以简短的答案是:
在另一个答案中要注意的有趣的事情是,Tomcat 实际上在类路径中只有两个 jar 启动。 Tomcat 本身实际上添加了来自
<tomcat-home>/lib/
的所有 jar。启动时自动。我们基本上在做同样的事情,只是来自
<tomcat-home>/webapps/openejb/lib
我认为我们实际上没有测试过将库移动到
<tomcat-home>/lib/
中。并删除 openejb webapp(在即将发布的最终版本中称为
tomee.war
),但我会记下尝试一下。支持甚至默认情况下似乎是一件好事。您可以删除 Tomcat 管理器和 ROOT Web 应用程序,因此也可以轻松删除 openejb.war 似乎是个好主意。