我想将 vaadin 7 与 osgi 集成,但不再有任何 AbstractApplicationServlet 类。
我已经使用 Neil Bartlett https://github.com/njbartlett/VaadinOSGi的 vaadin 桥进行了集成。
我尝试过以某种方式使用 VaadinServlet,但没有运气。
我还搜索了其他解决方案,但没有找到。
你有什么建议吗?
谢谢
我想将 vaadin 7 与 osgi 集成,但不再有任何 AbstractApplicationServlet 类。
我已经使用 Neil Bartlett https://github.com/njbartlett/VaadinOSGi的 vaadin 桥进行了集成。
我尝试过以某种方式使用 VaadinServlet,但没有运气。
我还搜索了其他解决方案,但没有找到。
你有什么建议吗?
谢谢
Vaadin 7 有许多默认用例不可见的设计更改,但特别是对于 OSGi 集成,您必须做一些额外的工作。为了让您开始,您应该尝试了解有关以下类的初始化过程: VaadinServlet、VaadinServletService、VaadinSession和UIProvider。
有问题的部分是使用类名参数作为参数的方法,您必须通过例如实现一个直接注入您的实例的工厂来解决这个问题。如果您查看源代码,UIProvider.createInstance(..)
您可以看到原始实现尝试创建一个新实例,这将失败,因为 vaadin 在 OSGi 中看不到您的类。同样的原则也适用于我提到的其他类。
您必须查看的另一件事是 Vaadin 7 中新的 jar 分离。一个好的方法是附加一个带有蓝图上下文的包片段。其注册BundleHttpContext
方式与在 Vaadin 6 中的工作方式相同。附加片段也适用于您要使用的主题。
抱歉,我无法提供交钥匙解决方案,但我希望这可以帮助您自己研究。