Osgi 需要安装概要才能安装EventAdmin吗?

Osgi 需要安装概要才能安装EventAdmin吗?,osgi,osgi-bundle,Osgi,Osgi Bundle,我有一个从web应用程序接收大量事件(一些度量数据)的应用程序。我有一个非osgi应用程序,它接收这些事件,并负责将这些事件转发到osgi包。我正在尝试使用EventAdmin进行此通信。我看了一下,但没有清楚地回答几个问题 我想安装EventAdmin服务(在非osgi应用程序级别)。我使用的是“org.osgi.service.event.EventAdmin”。但是,没有单独的罐子来装这个。它是简编罐的一部分。我需要安装简编罐吗 如果我不执行上述操作,则我从该调用返回的引用始终为空: Se

我有一个从web应用程序接收大量事件(一些度量数据)的应用程序。我有一个非osgi应用程序,它接收这些事件,并负责将这些事件转发到osgi包。我正在尝试使用EventAdmin进行此通信。我看了一下,但没有清楚地回答几个问题

我想安装EventAdmin服务(在非osgi应用程序级别)。我使用的是“org.osgi.service.event.EventAdmin”。但是,没有单独的罐子来装这个。它是简编罐的一部分。我需要安装简编罐吗

如果我不执行上述操作,则我从该调用返回的引用始终为空: ServiceReference ref=context.getServiceReference(EventAdmin.class.getName())

非常感谢您的指点

谢谢
Masti事件管理用于在一个OSGi框架内进行通信。您不能在OSGi之外或OSGi容器之间使用它。对于您的情况,我建议使用jms进行通信,或者如果通信速度太慢,那么RabbitMQ或HornetQ可能会起作用。为OSGi定义远程事件的工作也在进行中,但目前还不可用。事件管理和jms的一种可能组合是在一个包中接收jms,并通过事件管理转发事件。因此,您的业务代码包可以从jms中抽象出来

谢谢你,克里斯蒂安。我用它在我的应用程序和一个osgi包之间进行通信:bundleContext.registerService(数据类型,dataHolderMap,null);这适用于低通话量。我认为可以用类似的方式在单个JVM上使用EventAdmin如果您在同一个vm中,那么您至少有机会使用OSGi服务。在OSGi框架之外,您只能访问不在捆绑包中的类和接口。因此,您可以尝试将enterprise spec jar添加到普通类路径中,并使用框架的org.osgi.framework.system.packages.extra选项导出事件管理服务的包。然后,您应该能够从框架外部检索服务。