试图让声明性服务SCR在WebSphere 8.5上运行(非liberty)
我有一个blueprint管理的OSGI应用程序运行在WebSphere v8.5(非Liberty概要文件)上,其中一个服务service_a引用了另一个服务service_B。我希望该服务由声明性服务服务组件运行时管理,而不是blueprint容器,但仍需管理服务蓝图 我相信我在运行SCR时遇到了困难。我不确定我是否正确地包括它,或者如何检查它是否正在运行。我在Service_B的实现中用一些打印语句定义了“activate”和“deactivate”,据我所知,当SCR找到我所理解的服务时,应该调用这些语句,但我非常确定它们不会被调用,因为断点不会停在那里,我在控制台中看不到任何输出 到目前为止,我的工作包括运行时如下: 据我所知,以下三个jar/bundle是运行SCR所需的全部试图让声明性服务SCR在WebSphere 8.5上运行(非liberty),websphere,osgi,blueprint-osgi,declarative-services,Websphere,Osgi,Blueprint Osgi,Declarative Services,我有一个blueprint管理的OSGI应用程序运行在WebSphere v8.5(非Liberty概要文件)上,其中一个服务service_a引用了另一个服务service_B。我希望该服务由声明性服务服务组件运行时管理,而不是blueprint容器,但仍需管理服务蓝图 我相信我在运行SCR时遇到了困难。我不确定我是否正确地包括它,或者如何检查它是否正在运行。我在Service_B的实现中用一些打印语句定义了“activate”和“deactivate”,据我所知,当SCR找到我所理解的服务时
- org.eclipse.equinox.ds
- org.eclipse.equinox.util
- org.eclipse.osgi.services
因此,仍然坚持让SCR运行的能力。非常感谢所有的帮助!我在一个非常紧迫的期限内(我知道…谁是对的?:),欢迎所有的帮助!谢谢 我不熟悉WebSphere,但我想问题出在您的帖子中的以下语句中:“我继续创建了一个新的OSGI bundle/jar,其中包含上述所有jar文件,然后只传递了这个新bundle中每个jar的导出”。这是不正确的 你应该做的是:
只有这样,SCR才能拿起您的捆绑包并为其创建服务。SCR是一个单独的捆绑包,它跟踪DS组件的其他捆绑包,并相应地处理这些声明。谢谢您的回答!然而,我有一个问题:对于步骤1,如果我错了,请纠正我,但您指的是WebSphere的内部OSGI运行时吗?它用来运行它托管的OSGI应用程序的那个?因为如果你是,我不知道怎么做(…我一直在尝试!),我想你也不会,因为你说你不熟悉WebSphere。我相信我已经准备好了第二步,但是如果没有第一步,我想第二步是没有效果的:)。再次感谢。哦,我只想提一下WAS有一个“共享包存储库”,我将这些SCR包加载到其中,但没有任何效果:(。