如何将Vaadin 7与OSGi集成?

时间:2013-05-24 18:02:45

标签: osgi vaadin

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

我跟随Neil Bartlett使用vaadin桥进行整合https://github.com/njbartlett/VaadinOSGi

我尝试过以某种方式使用VaadinServlet,但没有运气。

我也搜索了其他解决方案,但没有找到。

你有什么建议吗?

由于

1 个答案:

答案 0 :(得分:4)

Vaadin 7有许多默认用例无法看到的设计更改,但特别是对于OSGi集成,您必须做一些额外的工作。 为了帮助您入门,您应该尝试了解有关类的初始化过程: VaadinServletVaadinServletServiceVaadinSessionUIProvider

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

你必须要看的另一件事是Vaadin 7中新的罐子分离。 一种好的方法是使用蓝图上下文附加bundle片段。注册BundleHttpContext的方式与它在Vaadin中的工作方式相同。附加片段也适用于您想要使用的主题。

很抱歉,我无法提供交钥匙解决方案,但我希望这可以帮助您自己查看。