osgi - 如何将 Vaadin 7 与 OSGi 集成?

标签 osgi vaadin

我想将 vaadin 7 与 osgi 集成,但不再有任何 AbstractApplicationServlet 类。

我使用 Neil Bartlett 的 vaadin 桥进行了集成 https://github.com/njbartlett/VaadinOSGi .

我试过以某种方式使用 VaadinServlet,但没有成功。

我也搜索过其他解决方案,但一无所获。

你有什么建议吗?

谢谢

最佳答案

Vaadin 7 有很多默认用例不可见的设计更改,但特别是对于 OSGi 集成,您必须做一些额外的工作。 为了让你开始,你应该尝试了解有关类的初始化过程: VaadinServlet , VaadinServletService , VaadinSessionUIProvider .

有问题的部分是使用类名参数作为参数的方法,您必须通过例如实现一个直接注入(inject)您的实例的工厂。 如果您查看 UIProvider.createInstance(..) 的源代码,您可以看到原始实现试图创建一个新实例,这将失败,因为 vaadin 在 OSGi 中看不到您的类。同样的原则也适用于我提到的其他类。

您必须注意的另一件事是 Vaadin 7 中新的 jars 分离。 一个好的方法是附加一个带有蓝图上下文的包片段。注册 BundleHttpContext 的方式与它在 Vaadin 6 中的工作方式相同。附加片段也适用于您要使用的主题。

抱歉,我无法提供交 key 解决方案,但我希望这可以帮助您自行研究。

关于osgi - 如何将 Vaadin 7 与 OSGi 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16741026/

相关文章:

mysql - OSGi 和 Hibernate - 不合适的驱动程序

java - Vaadin 网格单元不显示多行行

java - 在 Vaadin 中动态注入(inject) CSS

css - 将 "Dialog"小部件的宽度设置为 Vaadin 14 中页面的百分比

jetty - 使用pax web在OSGI容器中部署Web应用程序时出错

java - OSGi:确保所有扩展都已加载到声明性服务应用程序中

java - Apache felix 阻止了一个事件 - 如何删除它?

java - Tomcat 和 OSGi

java - Eclipse 未找到某些声明的方法(在 Vaadin 库中)

css - Vaadin 7 使用 Maven 构建,如何防止 style.css 总是重新生成