Vaadin资源未加载到OSGI中

时间:2011-09-12 22:25:48

标签: osgi vaadin

我有一组我用Maven + BND创建的包。其中一个包含我的Vaadin“应用程序”,其他包含一些实用程序和其他编辑器。

我可以在Tomat服务器上运行此应用程序 - 一切正常。然后我尝试在OSGI(Apache Felix)中运行。在解决了许多问题后,我终于设法运行OSGI运行时并正确加载和激活所有bundle。 我甚至可以通过“localhost:8080 / bat”访问第一页 - 它不再显示“404 not found”。

问题是:起始页面仅显示我的应用中的一些无格式文字

该应用无法加载其Vaadin资源(CSS,可能是widgetset等)。 调试框架说:

Starting Vaadin client side engine. Widgetset: com.vaadin.terminal.gwt.DefaultWidgetSet
Widget set is built on version: 6.6.6
Warning: widgetset version 6.6.6 does not seem to match theme version
Starting application bat-97301
Vaadin application servlet version: 6.6.6
Application version: 0.0.1
inserting load indicator
Making UIDL Request with params: init
Server visit took 9ms
...
Assuming CSS loading is not complete, postponing render phase. (.v-loading-indicator height == 0)
Assuming CSS loading is not complete, postponing render phase. (.v-loading-indicator height == 0)
....
CSS files may have not loaded properly.

看起来无法加载Vaadin资源。

所以问题是: 什么是作为OSGI包打包的Vaadin应用程序的正确结构?

这是我的OSGI捆绑结构(使用Maven + BND创建): (我跳过一些Vaadin Reindeer主题文件夹并不重要)

├───com
│   └───my
│       ├───demomodules
│       ├───preferences
│       ├───widgetset
│       └───workspaces
├───META-INF
├───VAADIN
│   ├───icons
│   ├───themes
│   │   ├───mytheme
│   │   └───reindeer
│   │       ├───a-sprite-definitions
│   └───widgetsets
│       ├───com.my.widgetset.Vaadin1Widgetset
│       │   └───ie6pngfix
│       └───WEB-INF
│           └───deploy
│               └───com.my.widgetset.Vaadin1Widgetset
│                   ├───rpcPolicyManifest
│                   └───symbolMaps
└───WEB-INF

1 个答案:

答案 0 :(得分:0)

我刚刚做了这个练习。谷歌搜索vaadin和OSGi显示,对于如何整合以及在哪个级别上有不同的看法,例如:组件或应用程序。但是,关键的“实现点”是您必须对其进行排列,以便可以从客户端访问VAADIN资源,即可以作为“servlet”的资源。我不认为这样的捆绑结构会对你有帮助,你必须处理Http服务并给出如何提供服务的说明。

https://github.com/njbartlett/VaadinOSGi看一下neil bartlett的vaadin例子,特别是vaadinbridge项目。这帮助我理解了这些问题。

另一种方法可能是在理解WAR的OSGi continer上部署bundle,例如Virgo。但这只是猜测。