gpt4 book ai didi

java - 部署多层应用程序

转载 作者:行者123 更新时间:2023-11-30 06:35:22 26 4
gpt4 key购买 nike

我想构建和部署我的第一个 Java EE 6 多层应用程序,其中 Web 层和业务层在 Glassfish 3.1 上的单独物理服务器上运行。

我想我理解从理论上的高级观点需要什么,但不清楚具体细节。

我目前的计划是这样的:

  • 在 NetBeans 7 中创建 Maven 企业应用程序。
  • 通过远程接口(interface)公开 Session Facade EJB。
  • 让 JSF Backing Beans 通过 JNDI 查找利用 Session Facade EJB。
  • 将 EJB JAR 部署到一台服务器,将 Web WAR 部署到另一台服务器。

我非常感谢您提供以下方面的建议:

  • 应用结构。
  • 使用单独的服务器更正 JNDI 查找。可以注入(inject)吗?
  • 建立适当的文件。
  • 允许各层进行通信的部署配置。

最佳答案

除非您知道您每秒将处理许多请求,或者具有大量数据和/或 CPU 密集型业务逻辑,否则您应该从在同一应用程序服务器上部署两层开始就完全没问题。从使用本地接口(interface)部署到单个 Glassfish 应用服务器开始,您可以跳过运行时环境中的许多复杂性。

这又将允许您在 Web 层中使用最简单的 @EJB 注入(inject)形式来访问业务层中的 session 外观。本地接口(interface)速度更快,因为应用程序服务器可以在层之间传递引用而不是 RMI 代理,并且它允许您跳过 JNDI 查找。您以后可以随时更改注释,或者如果您以后发现其他原因将这些层部署在单独的服务器上,则可以引入远程接口(interface)。

Glassfish 支持集群,因此您可能永远不必明确分离两层——这完全取决于实际使用模式,因此性能监控是关键。

将 Web 层部署为 WAR 并将业务逻辑部署为 EJB jar 是正确的做法。根据应用程序的大小和逻辑结构,您可能希望将其分解为多个模块。

Maven 负责构建文件。确保为每个 war 和 jar 存档定义一个子项目,以及一个用于组装 EAR 文件的子项目。后一个项目将引入其他子项目生成的 war 和 jar 文件。将所有项目与主 maven 项目串在一起,瞧,您可以灵活地单独构建每个组件、构建整个项目或两者之间的任何组合。

关于java - 部署多层应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6153273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com