3

我开发了一个基于 JSF、EJB 和 JPA 的应用程序。带有 ManagedBeans 和 Facelets 的 JSF 方面war-module位于ejb-module. 这不是什么大事,比如说 20 个页面、15 个 ManagedBeans 以及很少的实体和 EJB。这是我学士论文的一部分,其中一个要求是我需要使这个系统模块化,我应该使用这种OSGi技术。

所以我对 OSGi 的了解几乎为零,经过几个小时的谷歌搜索,我没有取得任何进展。所以我想问你,你会如何把这个应用程序分成模块?你能给我指出一些描述这种过程的教程或文章吗?因为我没有找到任何适合我的场景的东西。

它是专门用于管理大学学生项目的应用程序。所以有两个角色,老师和学生。他们都可以创建项目,老师确认,学生提交。

这是我的项目结构

ejb模块 战争模块

我当然不希望你给我一个完整的解决方案,但如果能给我一些作为开始的东西,我会很高兴。

非常感谢

4

1 回答 1

2

简而言之,OSGI 模块以捆绑包的形式提供,可以在不干扰应用程序其他部分的情况下启动、停止、修改这些模块。

当您将场景分解为捆绑包时,您将拥有:

  1. 服务(在您的情况下为 EJB)
  2. ServiceLocator(在这种情况下将由像您的 jsf 这样的客户端使用,这可以是您客户端本身的一部分)
  3. 客户(在您的情况下为 JSF)

    一世。根据项目的复杂性,您还可以将您的 web 分成单独的包,如视图、dao 等,但在您的情况下,我认为这不是必需的。

  4. 根据您在应用程序中可能拥有的公共代码,您可能还拥有一个公共捆绑包。

Java EE 和 OSGI 的一个很好的起点是 @Oracle Wiki

于 2012-04-29T13:39:34.367 回答