OSGI,Servlets和JPA hello world / tutorial / example

时间:2012-04-07 09:42:28

标签: java web-services jpa plugins osgi

我想构建一个Web应用程序,它基本上是一个提供json消息的宁静Web服务。我希望它尽可能简单。我在考虑使用servlet(带注释)。 JPA作为数据库层是必须的--Toplink或Hibernate。最好是在Tomcat上工作。我希望应用程序分为服务于不同功能的模块(身份验证服务,客户服务等)。我希望能够更新这些模块而无需在服务器上重新安装整个应用程序 - 比如eclipse插件,用户会收到通知(当他输入webapp的主页时),更新可用,点击它,应用程序正在下载并安装更新的模块

我认为这个功能可以用OSGI来完成,但是我找不到任何示例代码,或者使用简单的hello world可更新servlet的教程,通过jpa从数据库提供一些数据。

我正在寻求建议: - OSGI是否适合这种工具,或者可以通过更简单的方式完成? - 我在哪里可以找到一些涵盖本项目所需主题(或主题)的示例。 - 对于此任务,哪种OSGI实施最简单。

*我对OSGI的了解是基本的。我知道如何描述bundle,我理解OSGI容器的概念及其作用。我还没有创建任何OSGI应用程序。

2 个答案:

答案 0 :(得分:4)

我认为OSGi非常适合您所描述的内容,是的。一旦你将servlet和JPA添加到混合中,你就会使用所谓的企业OSGi,这是一个在核心OSGi之上的功能层。有两个主要的实现,Apache Aries和Eclipse Gemini。这些预先集成到各种服务器中,包括Apache Geronimo,或者您可以自己堆栈。 (我是白羊座的提交者。)

有关使用Aries进行Web开发的教程,请查看http://www.javabeat.net/articles/378-writing-an-osgi-web-application-1.html。白羊座本身有一个你可以下载和使用的样本,apache.org / downloads / blogsample-0.3.html。但是,它比Hello World复杂一点,您可能需要比当前级别更多的OSGi知识才能充分利用它。作为一个起点,我建议熟悉一个OSGi控制台(博客示例使用equinox控制台)来查看系统中发生了什么。对于equinox,ss命令最有用,而bundle命令是我最常使用的命令。

如果您搜索企业OSGi,servlet和JPA,您应该找到一些有用的资源。 DeveloperWorks有几篇文章。

答案 1 :(得分:1)

如果您希望尽可能简单,可以将OSGi框架与Jetty一起用作Web引擎,将EclipseLink用作JPA引擎,将Apache ACE用作OSGi分发框架,而不需要任何其他OSGi企业功能。

一些有用的链接: