Java bnd osgi项目未通过Firefox运行

Java bnd osgi项目未通过Firefox运行,java,http,osgi,bndtools,amdatu,Java,Http,Osgi,Bndtools,Amdatu,我刚刚开始学习如何构建bnd OSGI项目。 我尝试在没有任何错误消息的情况下运行一个非常简单的项目,但是当我转到localhost时,它显示“HTTP错误:404” 简单类: 激活器类: rest生成依赖项 运行依赖项 http错误: 谢谢你的帮助 您的类使用jax-rs注释进行注释,并发布OSGi服务。如果这将服务公开为REST,则资源取决于您安装的捆绑包 您必须安装一个包来监视这些服务并为它们创建REST端点 看 我认为您至少还需要将org.amdatu.web.wink捆绑包添

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

简单类:

激活器类:

rest生成依赖项

运行依赖项

http错误:


谢谢你的帮助

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

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


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

org.amdatu.web.rest.wink的最新2.0.4版本与Felix Http Jetty 3.x不兼容

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


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

我添加了几个bundle(包括web.wink)并尝试创建一个activator类,但它不起作用…我是这方面的新手,感谢您的帮助您当前正在使用声明性服务。所以你不应该使用激活剂。如果您想在出现组件时运行某些内容,请使用@Activate注释。抱歉。。我想我给你的暗示是错误的@组件暗示您使用DS,但我在Amdatu教程中查找了它,它似乎是一个DM注释。因此,您确实需要某种激活器才能让felix依赖项管理器工作。不过我对它不太熟悉,所以他使用的是DM,它既支持注释,也支持使用激活器以编程方式发布服务。上面的例子两者都有。这不是必需的,所以要么松开激活器,要么松开@Component注释。通过查看您运行的bundle列表,我没有立即看到缺少的内容,但是由于您已将shell添加到项目中,您可能需要键入“dm wtf”以确定您的设置中是否缺少服务依赖项。如果您不能理解这一点,请将您的项目推送到某个公共git存储库,以便我们可以查看。您可以做的另一件事是按照教程开始,因为它的第一步是启动并运行REST端点。看:我想就是这个了。演示包也有同样的问题,请参阅邮件列表: