【问题标题】:Modular OSGI Java Framework for Web?用于 Web 的模块化 OSGI Java 框架?
【发布时间】:2013-04-06 19:42:01
【问题描述】:

我正在寻找一个功能强大的最新 Java OSGI WEB 框架, 这将允许

  • 模块化架构 (OSGI)
  • 灵活的视图(JavaScript、HTML、模板...)
  • 字符串 MVC 分离
  • 可能是预实现的 CMS 模块?
  • 积极开发并开源

我发现的是

  • ZEND 用于 PHP。 Java 世界有类似的东西吗?
  • 弹簧拼接可能是解决方案
  • Eclipse RAP,可以 OSGI 但不提供足够灵活的视图
  • ... ?

【问题讨论】:

  • 目前 Apache Felix 和 Eclipse Equinox 是可用的最新 OSGi 框架,我个人使用的是 Felix,效果最好。
  • 作为一个意见问题,我在实际使用 OSGi 时遇到了很大的困难。这是一场噩梦,我花了难以置信的时间解决版本依赖关系,而一开始就不应该存在冲突。
  • @PradeepSimha 但是这些只是 osgi 容器。它没有解决应该使用哪些应用服务器、哪些框架的问题。

标签: java model-view-controller web osgi


【解决方案1】:

采取任何标准。您选择的框架并将其部署在 Karaf 之上(如果您不想麻烦构建自己的 OSGi 运行时环境),或者如果您想从头开始构建所有内容,还要考虑 Pax-Web 它还支持 Servlet 3.0 和 OSGi 看看the home page of Pax-Web

【讨论】:

    【解决方案2】:

    我非常喜欢Vaadin,它与 OSGi 配合得很好,而且非常活跃。 这是一个基于 Google GWT 的 UI 工具包。

    请注意,您仍有很多决定要做:您可以“直接”使用 OSGi 框架,例如 Felix 或 Equinox,但也许您最好使用应用程序服务器,例如 Apache Karaf 或 Eclipse Virgo .

    【讨论】:

      【解决方案3】:

      您应该查看 Apache (Felix) Sling 或其商业版本 CQ5(以前称为 Day Software)。它完全基于 OSGi。

      【讨论】:

        【解决方案4】:

        我每天都在开发基于 OSGi 的 Web 应用程序。我们有一个稍微替代的方法,效果很好:

        • 使用 OSGi 服务实现的 RESTful Web 服务
        • 基于模块化 AngularJS 的用户界面,打包在 OSGi 包中

        虽然 AngularJS 显然不是 Java Web 框架,但它非常适合现代 Web 开发。如果您熟悉 Java MVC Web 框架,也很容易理解 Angular。

        主要问题是如何模块化您的代码。在后端,我们将所有内容都实现为 OSGi 服务。 RESTful Web 服务是通过 JAX-RS 使用 Amdatu (amdatu.org) 实现的。使用 Amdatu,您可以以非常适合 OSGi 的方式使用 JAX-RS。每个 RESTful 资源和较低级别的服务也打包在单独的包中,因此后端是完全模块化的。

        为了模块化 UI 本身,我们将应用程序的不同功能部分分离为不同的 Angular 应用程序。每个 Angular 应用程序也使用 Amdatu 资源提供程序打包在单独的包中。

        【讨论】:

          【解决方案5】:

          您可以测试 Konekti 一个开源 OSGi 业务平台,该平台由 Thingtrack 开发的 Eclipse Virgo OSGi Container 提供支持。

          • Vaadin.
          • 春天。
          • JasperReport.
          • 石英。
          • JBoss JBmp,流口水。
          • Apache Camel,ActiveMQ。
          • 还有更多

          http://www.konekti.org

          【讨论】: