【发布时间】:2014-07-15 09:13:01
【问题描述】:
我正在使用 JavaSE 1.6 在 Windows 7 下的 Eclipse Kepler 中运行 BND 工具,并且我正在尝试使用 Web 控制台启动 Apache Felix 框架 4.4.0。我很困惑,因为在 Ubuntu 14.04 下似乎确实可以使用相同的方法。我没看到什么?
除了普通的捆绑包之外,我还在为 Jetty 网络服务器和 felix webconsole 捆绑包运行捆绑包。现在,当我尝试访问 http://localhost:8080/system/console 时,我从码头收到 404。现在这确实告诉我码头工作正常,但网络控制台不知何故不能正常工作。
我尝试重新添加捆绑包,重新启动 eclipse,重新启动我的电脑,但都没有效果。一个最小的示例确实可以在另一台运行 Ubuntu 的机器上运行,而且我过去也可以运行它。
现在我确实发现有一个属性“manager.root”,我可以通过它自己设置webconsole的位置,但我没有更改它(即使我做了,它似乎也没有效果)。是否有从控制台获取位置的命令?
我只运行以下 4 个捆绑包:
- org.apache.felix.gogo.shell
- org.apache.felix.gogo.command
- org.apache.felix.http.jetty
- org.apache.felix.webconsole
活动包:
ID|State |Level|Name
0|Active | 0|System Bundle (4.4.0)
1|Active | 1|Java Servlet API (3.0.1)
2|Active | 1|Apache Felix Gogo Command (0.12.0)
3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
4|Active | 1|Apache Felix Gogo Shell (0.10.0)
5|Active | 1|Apache Felix Http Jetty (2.2.2)
6|Active | 1|Apache Felix Web Management Console (All In One) (4.2.2.all)
7|Active | 1|osgi.enterprise (4.2.0.201003190513)
8|Active | 1|osgi.residential (4.3.0.201111022239)
【问题讨论】:
-
检查 Jetty 包正在发布一个 HttpService,并且它正在被 WebConsole 包使用:
inspect cap service 5 -
服务好像已经发布了,但是webconsole没有使用。它没有显示为被任何捆绑包使用。
-
我怀疑 javax.servlet 导入不兼容。我注意到你有 Servlet 3.0 包,我认为 Felix Jetty 包导出 Servlet 2.5。如果 WebConsole 导入 javax.servlet 3.0,那么它将与 Felix Jetty 的 2.5 导出不兼容。您可以通过
inspect req osgi.wiring.package 6来验证这一点。请在此处或在要点中发布完整的输出。 -
或者你也可以试试github.com/evandor/skysail-webconsole,它应该可以毫无问题地启动(至少是这样的想法;)——它仍处于早期的alpha阶段。
标签: java eclipse osgi apache-felix bndtools