2017-10-28 195 views
1

如果我在GlassFish域内的一个应用程序EAR中部署@ManagedBean或CDI @Named JSF辅助bean,然后在同一个GlassFish域中的不同应用程序EAR中部署相同的托管bean或命名bean这是否会导致碰撞或任何问题? 例如,我有一个LoginController类,它被注册为一个托管或命名的bean,我用它来登录到不同的应用程序。我还有一些其他常见的水平实用程序,它们被注册为托管或命名bean,我希望在部署为不同EAR的不同应用程序间重复使用,这些EAR可能会或可能不会部署到同一个GlassFish域或服务器。 我已经实现了这一点,并且想知道相对于GlassFish域以及跨应用程序/ EAR的托管bean或命名bean的范围。 在JEE和GlassFish中完成此操作的最佳方式是什么?GlassFish域中的JSF托管Bean唯一性

+0

备注:JSF Managed Beans已弃用(自JSF 2.3起)。相反,你应该使用CDI @命名的豆 –

+0

你试过了吗?不应该那么困难 – Kukeltje

+0

谢谢@AndyGuibert。我已将剩余的ManagedBean注释转换为CDI命名的bean,但GlassFish环境中关于JSF backing bean范围的基本问题尚未得到解答。 – Chris

回答

0

每个应用程序都创建它自己的CDI上下文。

这意味着应用程序不会在您的服务器上使用其他应用程序的上下文。

因此你可以使用相同的名称没有任何问题

您可以将上下文想象成一个大对象,其中每个应用程序都有自己的地图。

+0

这也是我的理解。有没有在JEE文档中明确记载您知道@milkmaid的地方? – Chris

+0

@Chris这应该回答你所有的问题:[LINK](https://stackoverflow.com/a/3106909/4327527) – Milkmaid