2012-04-29 108 views
3

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

所以我对OSGi的知识几乎一无是处,几个小时的谷歌搜索后,我没有取得任何进展。所以我想问你,如何将这个应用程序划分为模块?你能指点我一些教程或者文章描述了这样一个过程吗?因为我没有找到任何适合我的场景的东西。

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

这里是我的项目结构

ejb modulewar module

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

非常感谢

回答

2

在nushell,OSGI模块被提供为软件包,其可以被启动,停止,而不会干扰应用的其他部分进行修改。

当你打破的情况下成束,你将有:

  1. 服务(在你的情况EJB)
  2. 服务定位(将由客户在这种情况下使用像你的JSF,这可能是部分您的客户端本身)
  3. 客户端(您的情况为JSF)

    i。根据项目的复杂程度,你也可能会把你的网站分成不同的包,比如view,dao e.t.c,但在你的情况下我不认为这是必需的。

  4. 根据您在应用程序中可能具有的通用代码,您可能也有一个共同的包。

一个很好的地方开始使用Java EE和OSGi是@Oracle Wiki

+0

感谢总结起来。我会听从你的建议,但我还有一个问题。你认为可以花多少时间将我的应用程序转换为OSGi项目?因为我的时间已经过去了,所以我想估计一下:-)非常感谢你。 – 2012-04-29 16:24:49

+0

不要担心不应该花费超过一两天才能让它为您的项目工作:) – mprabhat 2012-04-29 16:26:46

+0

如果您使用的是glassfish,那么它应该会更容易,因为Oracle Wiki中的大多数示例都是关于glassfish – mprabhat 2012-04-29 16:28:45