使用 JavaEE 6 WAR 与 EAR 封装 EJB

2024-04-15

开始一个新项目,想了解在 WAR 与 EAR 中打包 EJB 的优缺点。

当 EJB 处于 WAR 状态时,JNDI 是否仍然有效?效率? ETC。?

Thanks.


将 EJB bean 放在单独的 JAR 中的一个重要动机是为了古老的分离商业逻辑 and 查看逻辑.

由于 EJB 应该只关注业务逻辑,因此将它们放入单独的模块中是有意义的。

这正是传统 Java Enterprise Archive 所提供的便利。 EJB bean 进入一个 JAR 文件,该文件代表EJB module,而与 Web 相关的工件(Facelets、支持 Bean、实用程序代码)则进入 Web 存档 (WAR) 文件,该文件代表Web module。请注意,WAR 实际上不一定是文件。在所谓的分解格式中,它们只是目录。

这种分离的一个关键方面是这两个模块是isolated通过类加载器层次结构。这Web module可以访问来自的资源(通常是bean)EJB module,以及EJB module可以引用整个 EAR 保护伞中定义的资源(通常是库)。其他方向是不可能的。具体来说,EJB module无法访问中定义的任何资源Web module.

这种强制执行是经过深思熟虑的。

业务逻辑应该完全独立于任何视图技术。强制执行这种隔离可以防止开发人员意外地或在压力下混合这些问题。这种分离的好处是业务逻辑可以被其他 Java SE 客户端、Web 模块客户端、JAX-RS 客户端等轻松使用。如果业务逻辑意外地具有 JSF 或 Servlet 依赖项,那么将很难使用它来自 Java SE 客户端。

将此与不允许使用 scriptlet 的 Facelets 进行比较。这使 Facelets 保持干净,并让它们专注于组件布局和标记。另一个类比是接口编码,它将契约与实现分开。

因此,拥有一个单独的 EJB 模块实际上是最佳实践。然而...

对于较小的项目,可能没有必要进行这种分离,而对于初学者来说,可能很难理解什么需要放在哪里的结构。因此,取消强制分离可以让没有经验的开发人员更轻松地开始使用 Java EE。它向他们简要介绍了 Java EE,随后他们get分层的想法,然后他们可以选择引入EJB module anyway.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaEE 6 WAR 与 EAR 封装 EJB 的相关文章

  • Hibernate:是否可以在二级缓存中保存瞬态字段?

    我需要跟踪持久实体的字段 该字段会经常更改 并且实际上并不是该实体的功能 而是某种计算 有时 用户希望查看该计算结果 但这种情况非常罕见 每月一次左右 因此 必须以某种方式保存此计算的结果 但我想避免每次更改时都将其保存在数据库中 因为这每
  • HttpSession - 如何获取session.setAttribute?

    我以这种方式创建 HttpSession 容器 SessionScoped ManagedBean name userManager public class UserManager extends Tools private variab
  • 绑定用户实体和 GlassFish 主体

    我有一个实体类User其中包含用户名 名字 姓氏和密码等信息 我有 GlassFish 3 1 服务器设置来执行身份验证 到目前为止 一切都很好 在容器对用户进行身份验证后 我需要某种方法将主体绑定到实际的用户实体 毕竟 GlassFish
  • WebLogic Server :: 服务器不支持 J2EE Web 模块规范 3.0 版

    当我尝试使用 WebLogic 11g 10 3 5 服务器运行应用程序时 它显示 服务器不支持 J2EE Web 模块规范 3 0 版 如何克服这个问题 Thanks 使用支持的规范版本 Servlet 2 5 开发您的应用程序 或者使用
  • Spring MVC 中的多响应 http 状态

    有以下代码 RequestMapping value system login method RequestMethod GET public void login RequestBody Login login if login user
  • Java EE 6 中的多租户支持

    我有一个现有的 Java EE 6 应用程序 部署在 Glassfish v 3 1 中 并且希望支持多个租户 我当前在应用程序中使用的技术 API 是 EJB 包括EJB定时器服务 JPA 2 0 EclipseLink JSF 2 0
  • Log4j 显示包名称

    现在对于我的 ConversionPattern 我有 log4j appender A1 layout ConversionPattern d yyyy MMM dd HH mm ss SSS 5p t F L m n 我想做的还包括包含
  • 配置 Jersey + Jetty + JSP

    我如何配置该项目以便它能够呈现 JSP 文件 我希望以 rest 开头的 URL 路由到球衣资源 并让 URLS 提供 JSP 文件 我这个项目中没有任何 web xml 项目文件夹 src main java Main java reso
  • Wildfly Undertow 文件 Mimetypes

    我希望 Undertow 提供静态文件 如 jpg png js css txt 等 我在standalone xml中编辑了undertow子系统
  • 如何学习使用内容存储库和 Apache JackRabbit?

    在 Apache JackRabbit 网站中完成 第一跳 后 我该去哪里 我不明白如何创建不在内存中的存储库以及如何配置它等等 欢迎来到我的世界 Jackrabbit 文档有点乱 你将不得不进行一些认真的谷歌搜索 但是 那Wiki htt
  • 如何从 Richfaces 弹出窗口刷新父 jsf 页面

    我有一个包含几个字段的 JSF 页面 我跟着这个tutorial http balusc blogspot com 2011 01 jsf 20 tutorial with eclipse and html来自 BalusC 一切都很好 然
  • Weblogic:Java 8 迁移后 AppMerge 无法合并您的应用程序

    我们正在将 Java EE 应用程序从Java 6 to Java 8 这意味着编译级别和迁移JRE6 上的 Weblogic 11g to JRE8 上的 Weblogic 12c 当我尝试部署项目时 出现以下错误 lt 20 7 201
  • 谁能解释一下 servlet 映射吗?

    我正在尝试使用 SpringMVC 编写一个 Web 应用程序 通常我只是将一些虚构的文件扩展名映射到 Spring 的前端控制器并快乐地生活 但这次我要使用类似 REST 的 URL 没有文件扩展名 将我的上下文路径下的所有内容映射到前端
  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • 如何将注销的用户重定向到 Java EE/JSF 中的主页? [复制]

    这个问题在这里已经有答案了 我需要只允许登录用户访问我的应用程序的大部分页面 我正在使用 JSF 2 开发 Java 企业应用程序 有谁知道我该怎么做 也许有一个配置文件 我在主页中有一个登录组件 我希望用户在单击页面上除少数项目之外的任何
  • 空 EntityManager/EJB 注入 MDB

    我有一个消息驱动 bean MDB 部署到 WebLogic 12 1 3 我尝试使用 PersistenceContext 注释将实体管理器注入 MDB 但实体管理器为空 我还尝试注入一个简单的无状态会话 bean 它也是空的 但是 Me
  • Alfresco 和 Nuxeo 哪个更容易扩展? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在考虑做一个rewrite http kato agency blogspot com 2009 12 kato redesign html
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Java EE6> 将 JSF Facelets (xhtml) 和 ManagedBeans 打包为 JAR

    是否可以将 JSF Facelets 和 ManagedBeans 打包到 JAR 文件中 这样我们就可以在不同的 war ear 项目中使用这个代码和 UI 组合了吗 我不是在谈论 JSF 组件 如果是的话 你能给我指一下教程或博客文章吗
  • 如何作为应用程序发布到页面?

    所以 我有一个应用程序 Facebook 应用程序实体 并且我有一个页面 我想使用应用程序通过java代码 通过restfb或任何其他建议 发布到页面 看起来我错过了页面授予应用程序发布权限的阶段 不知道该怎么做 谢谢你们 乌里 您只能 作

随机推荐