【问题标题】:bnd osgi project not running through the Firefoxbnd osgi 项目未通过 Firefox 运行
【发布时间】:2016-10-23 17:52:49
【问题描述】:

我刚开始学习如何构建一个 bnd OSGI 项目。 我尝试运行一个非常简单的项目,没有任何错误消息,但是当我转到 localhost 时,它显示“HTTP ERROR: 404”。

简单类:

一个 Activator 类:

其他构建依赖项

运行依赖项

http 错误:

感谢您的帮助!!

【问题讨论】:

    标签: java http osgi bndtools amdatu


    【解决方案1】:

    org.amdatu.web.rest.wink 捆绑包的最新 2.0.4 版本不能很好地与 Felix Http Jetty 3.x 配合使用。

    如果您将该捆绑包的版本固定到 2.0.3 版本,则应该可以按预期工作。为此,请将您的 runbnd.bndrun -runbundles 的 org.amdatu.web.rest.wink 条目更改为:

    org.amdatu.web.rest.wink;version='[2.0.3,2.0.3]'

    【讨论】:

    【解决方案2】:

    您的类使用 jax-rs 注释进行注释并发布 OSGi 服务。这是否将服务公开为 REST 资源取决于您安装的捆绑包。

    您必须安装一个包来监视此类服务并为它们创建 REST 端点。

    enter link description here 我认为您至少还需要将 org.amdatu.web.wink 包添加到您的 bdnrun 文件中。

    【讨论】:

    • 我添加了几个捆绑包(包括 web.wink)并尝试创建一个激活器类,但它不起作用...我是新手,感谢您的帮助
    • 您当前正在使用声明式服务。所以你不应该使用激活器。如果您想在组件出现时运行某些东西,请使用 @Activate 注释。
    • 对不起.. 我想我给了你错误的提示。 @Component 暗示您使用 DS,但我在 Amdatu 教程中查找了它,它似乎是 DM 注释。因此,您确实需要某种 Activator 才能使 felix 依赖管理器工作。不过我不熟悉。
    • 所以他正在使用 DM,它支持注释和使用 Activator 以编程方式发布服务。上面的例子两者兼而有之。这不是必需的,因此要么松开 Activator 或 @Component 注释。通过查看您运行的捆绑包列表,我不会立即看到缺少的内容,但是由于您已将 shell 添加到项目中,您可能需要键入“dm wtf”来确定是否缺少服务依赖项在您的设置中。如果您无法解决这个问题,请将您的项目推送到某个公共 git 存储库,以便我们查看。
    • 您可以做的另一件事是按照教程开始,因为它的第一步是启动并运行 REST 端点。见:amdatu.org/tutorial/intro.html
    猜你喜欢
    • 2011-03-06
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2011-12-31
    • 2013-09-21
    • 1970-01-01
    相关资源
    最近更新 更多