【问题标题】:Sharing files and backbeans between different wars Java EE在不同的战争 Java EE 之间共享文件和 backbean
【发布时间】:2014-12-18 23:02:49
【问题描述】:

我正在使用 PrimeFaces 5.0、Java EE 7、Maven 3.0.5、Netbeans 7.4 和 GlassFish 4.0 开发大型系统

我想将其实现为(多个 WAR、多个 EJB、一个 EAR)。 多个战争可能有共同的文件,如(JS、CSS、XHTML、Backbeans & Converters) 我已经使用包含此资源的 jar 实现了这一点。 different WAR files, shared resources

我需要一个会话范围的 bean 来在不同的战争之间共享,我找到了这个,但我发现它比我需要的要多。

http://docs.oracle.com/cd/E18686_01/coh.37/e18690/glassfish.htm#CEGBDHJB

所以我的问题是:

  1. 使用 jar 是分享我想要的东西的正确方法吗??
  2. 我应该将primefaces或omnifaces之类的jar放在他们使用相同类加载器的项目中吗??
  3. 如何在不同的战争之间共享会话范围??

【问题讨论】:

  • 如果您使用的是 spring:1) maven 让我们构建一个包含共享 lib 文件夹和您的战争的耳朵。 2)仅在此 lib 文件夹中的 jar 可能包含 spring 根上下文(您可以在那里声明您的 bean)。 3) 可能你需要 webAppRootKey
  • 感谢重播,但我想我可以在不使用 spring 的情况下解决这个问题。

标签: maven jakarta-ee glassfish


【解决方案1】:

根据我们的经验,我一直在从事与您的要求相似的耳朵项目:

  1. 当然。我们已经分离了我们的战争项目,并将它们用作扩展控制器来执行前端逻辑并将数据传递给视图,它们通过一个名为 common-services.jar 的 jar 文件进行服务调用。我们的整个服务层都存在于单个 jar 文件中。但是,如果您问我的个人意见,我认为为服务创建第三个战争文件并与所有前端 repos 交谈会很有意义。这样一来,无需任何进一步的工作就可以向第三方用户开放服务调用。所以总结一下,是的,这是一种可以接受的方法,但你也应该考虑把它打包成战争。

  2. 在所有 war 之上的父 pom 上,因此所有 war 文件都使用相同的版本,并通过单个 pom 进行管理。

  3. 将所有基于会话的操作带到我们在问题 1 中讨论过的第三个 jar/war 中。这样更有意义。或者我想您将需要单点登录等解决方案。但我的第一个建议对我们来说就像是一种魅力。

【讨论】:

  • 感谢您的重播,我的会话范围的 backbean 在普通 jar 中,但在我的情况下,每场战争都会创建自己的会话。顺便说一句,每个战争都有公共 jar 的依赖标记。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
相关资源
最近更新 更多