【问题标题】:Vaadin + Spring Boot + OsgiVaadin + Spring Boot + Osgi
【发布时间】:2021-11-13 11:59:59
【问题描述】:

是否有人已经设法使用 Spring BootOsgi(作为捆绑包)设置了一个 Vaadin(19 到 21 岁)Web 应用程序?

  • 我已经设法让 Vaadin 应用程序在 Osgi 容器 (Karaf) 下运行。
  • 我已经设法在 Osgi 容器 (Karaf) 下运行了一个 Spring Boot 应用程序。

但不能同时使用。

事实上,在尝试的时候,并没有注册任何路由,并且从不调用 FixedVaadinServlet。

感谢您的帮助。

【问题讨论】:

  • 带有 Vaadin 21 的 OSGi 需要使用额外的附加组件来支持 OSGi,请参阅此处的文档:vaadin.com/docs/v21/flow/integrations/osgi/basic/… 和此处的 Karaf 详细信息 vaadin.com/docs/latest/flow/integrations/osgi/karaf 另请注意,OSGi 支持需要 Vaadin 的 Prime 订阅 @ 987654323@
  • 已经做到了...并获得了总理。问题是混合 Vaadin、Spring Boot 和 OSGI。
  • 对 Vaadin 来说很棒的事情是做类似github.com/mmornati/springboot-osgi-sample 这样的事情,您可以在其中构建一个 Vaadin 应用程序,然后使用带有 osgi 的插件集成子模块/视图。在本项目中,osgi(带felix)集成在应用本身中,然后可以打包成一个简单的Spring Boot Application自行部署,比如不用Karaf。

标签: spring-boot osgi vaadin apache-karaf


【解决方案1】:

我不得不说我不完全理解你的问题,因为 Spring 不兼容 OSGi(它只是没有 OSGi 清单),所以我根本看不出它是如何工作的。

现在我来猜猜……

我已经设法让 Vaadin 应用程序在 Osgi 容器 (Karaf) 下运行。

因此,您的应用程序构建为 OSGi 包,并且您已将其部署到 Karaf(OSGI 容器)并且它可以工作。

我已经设法在 Osgi 容器 (Karaf) 下运行了一个 Spring Boot 应用程序。

您已经构建了 something(WAR 或 Spring boot Jar),它是一个 Web 应用程序,并且您已将其部署到 Karaf 作为一个 WEB 应用程序。 Karaf 提供的这个特性:它不是纯粹的 OSGi 容器。它允许向其部署 WEB 应用程序。 这些 Web 应用程序与 OSGi 没有任何关系。

所以你没有在 OSGi 中工作的 Spring 应用程序:如果你使用另一个 OSGi 容器(它不支持 Web 应用程序部署等额外功能),那么你将无法在那里使用 Spring,因为正如我所说的 Spring 是不兼容 OSGi。

所以我根本不明白如何使用 Spring + OSGi。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多