开始一个新项目,想知道将EJB打包在WAR与EAR中的优缺点。当EJB位于WAR时,JNDI是否仍然有效?效率如何?等等。
谢谢。
开始一个新项目,想知道将EJB打包在WAR与EAR中的优缺点。当EJB位于WAR时,JNDI是否仍然有效?效率如何?等等。
谢谢。
对于较小的项目来说,没有必要进行这种分离,对于初学者来说,在理解需要放置在何处的结构方面可能会比较困难。因此,取消强制性分离可以让经验不足的开发人员更容易地开始使用Java EE。这为他们提供了一个温和的介绍,让他们更好地了解Java EE。一旦他们掌握了分层的概念,他们可以选择引入 EJB 模块
。
到目前为止,这就是我得到的。
WAR 中的 EJB
优点:
开发和部署更简单
您可以使用 @Path 注释将会话 Bean 方法公开为 REST 服务。请参见 此处
缺点:
不支持 JNDI 查找,因此我认为您无法从另一个应用程序客户端执行 RMI
正如 arjan 指出的那样,它在设计上缺乏模块化。
我认为你需要记住的是,在WAR中的EJB是EJB Lite的一部分,这是一个很好的尝试,使应用程序在EJB容器提供的最少服务下运行。因为你不总是需要EJB容器提供的所有服务。
因此,如果你想知道将EJB打包到WAR或EAR中的利弊,那么你应该考虑你需要多少服务。
希望对你有所帮助。
我目前正在学习EJB 3.1认证指南,并需要测试其每个功能。而且当使用war时,所有功能都可用。
EJB Lite与WAR包装非常不同。
您可以使用ejb jars来实现一些逻辑模块化,然后将它们包含在您的Web项目中。但是,所有模块都共享相同的环境(jndi),因此可能会发生一些名称冲突。在EAR项目中,每个模块都有自己的命名空间。