【问题标题】:Apache Felix Webconsole 404Apache Felix Web 控制台 404
【发布时间】: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


【解决方案1】:

谢谢尼尔,你是对的。在 Ubuntu 上的示例中,我发现我确实使用了另一个版本的 Java Servlet API (2.5)。在确定我也在 windows 机器上使用 2.5 版之后,一切似乎都运行良好。

webconsole 包的要求如下:

g! inspect req osgi.wiring.package 6
org.apache.felix.webconsole [6] requires:
-----------------------------------------
osgi.wiring.package; (&(osgi.wiring.package=javax.servlet)(version>=2.4.0)) resolved by:
   osgi.wiring.package; javax.servlet 3.0.0 from javax.servlet-api [1]
osgi.wiring.package; (&(osgi.wiring.package=javax.servlet.http)(version>=2.4.0)) resolved by:
   osgi.wiring.package; javax.servlet.http 3.0.0 from javax.servlet-api [1]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.framework)(version>=1.4.0)(!(version>=2.0.0))) resolved by:
   osgi.wiring.package; org.osgi.framework 1.7.0 from org.apache.felix.framework [0]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.http)(version>=1.2.0)(!(version>=2.0.0))) resolved by:
   osgi.wiring.package; org.osgi.service.http 1.2.1 from osgi.residential [8]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.packageadmin)(version>=1.2.0)(!(version>=2.0.0))) resolved by:
   osgi.wiring.package; org.osgi.service.packageadmin 1.2.0 from org.apache.felix.framework [0]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.startlevel)(version>=1.1.0)(!(version>=2.0.0))) resolved by:
   osgi.wiring.package; org.osgi.service.startlevel 1.1.0 from org.apache.felix.framework [0]
osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.bundlerepository)(version>=2.0.0)(!(version>=3.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.obr)(version>=1.0.0)(!(version>=2.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.cm)(version>=1.2.0)(!(version>=2.0.0))) resolved by:
   osgi.wiring.package; org.osgi.service.cm 1.4.0 from osgi.residential [8]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.condpermadmin)(version>=1.0.0)(!(version>=2.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.log)(version>=1.3.0)(!(version>=2.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.metatype)(version>=1.1.0)(!(version>=2.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.permissionadmin)(version>=1.2.0)(!(version>=2.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.prefs)(version>=1.1.0)(!(version>=2.0.0))) [UNRESOLVED]
osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.wireadmin)(version>=1.0.0)(!(version>=2.0.0))) [UNRESOLVED]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 2017-04-24
    • 2011-08-25
    • 2017-10-25
    • 2013-10-31
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多