如何将Vaadin 7与OSGi集成?

3
我想将Vaadin 7与OSGi集成,但没有AbstractApplicationServlet类了。
我按照Neil Bartlett的Vaadin桥接集成方式进行了操作 https://github.com/njbartlett/VaadinOSGi,但未成功。
我尝试过使用 VaadinServlet,但没有成功。
我也搜索了其他解决方案,但没有找到。
您有什么建议吗?
谢谢

@Neil Bartlett在这里,我相信他会帮助你解决这个问题。 - anvarik
很抱歉,我不能。我不再为自己的项目使用Vaadin,所以我没有时间去调查他们在第7版本中所做的更改。 - Neil Bartlett
1个回答

4
Vaadin 7有很多设计变化,对于默认用例来说不可见,但是特别是对于OSGi集成,您需要做一些额外的工作。 为了让您开始工作,您应该尝试了解与类相关的初始化过程: VaadinServletVaadinServletServiceVaadinSessionUIProvider。 问题部分是使用类名参数作为参数的方法,您将不得不通过实现直接注入您的实例的工厂来解决这个问题。 如果您查看UIProvider.createInstance(..)的源代码,您会发现原始实现尝试创建一个新实例,这将失败,因为Vaadin在OSGi中看不到您的类。同样的原则也适用于我提到的其他类。
另一件需要注意的事情是Vaadin 7中新的jar分离。一个好的方法是附加一个带有蓝图上下文的bundle片段。该片段注册一个BundleHttpContext,就像在Vaadin 6中一样工作。附加片段也适用于您想要使用的主题。
很抱歉我不能提供现成的解决方案,但我希望这能帮助您自行研究。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接