J2EE规范没有对EAR文件内的J2EE模块应该如何部署做出任何规定。特别地,J2EE规范没有明确规定部署模块的次序。如果一个模块中的某个组件要用到另一个待部署模块的组件,它可能会带来问题。
因此,必须注意大多数应用服务器以如下步骤部署EAR文件:
EAR文件内的所有资源适配器作为基本连接器部署。如果存在多个资源适配器,则它们的部署次序就是它们在application.xml部署描述器中列出的次序。
部署所有EJB模块。由于EJB可能在初始化期间用到某些资源适配器,所以EJB的部署在资源适配器之后。如果存在多个EJB模块,它们的部署次序将是它们在application.xml中列出的次序。
部署所有Web应用模块。由于Web应用初始化期间可能用到资源适配器和EJB,所有Web应用在这两者之后部署。如果存在多个Web应用模块,它们部署次序就是它们在application.xml中列出的次序。
例如:
<!DOCTYPE application (View Source for full doctype...)>
<application>
<display-name>CMP2.0 Example</display-name>
<description>TongWeb4.0 Example : CMP2.0 EJB Example</description>
<module>
<ejb>ejbql801.jar</ejb>
</module>
<module>
<web>
<web-uri>ejbql801.war</web-uri>
<context-root>/ejbql801</context-root>
</web>
</module>
</application>
war模块应放在最后加载。
J2EE模块加载顺序问题
最新推荐文章于 2021-12-21 10:10:46 发布