3

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

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

我正在寻找一个建议: - OSGI 是正确的工具还是可以用更简单的方法来完成?- 我在哪里可以找到一些涵盖该项目所需主题(或多个主题)的示例。- 对于这项任务,哪种 OSGI 实现最简单。

*我的OSGI知识是基础的。我知道捆绑包是如何描述的,我了解 OSGI 容器的概念及其作用。我还没有创建任何 OSGI 应用程序。

4

2 回答 2

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 有几篇文章。

于 2012-04-08T05:28:00.320 回答
1

如果您想让它尽可能简单,您可以使用 OSGi 框架,Jetty 作为 Web 引擎,EclipseLink 作为 JPA 引擎,Apache ACE 作为 OSGi 分发框架,而无需任何其他 OSGi 企业功能。

一些有用的链接:

于 2012-04-10T18:18:52.967 回答