问题标签 [blueprint-osgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1863 浏览

apache-karaf - Karaf OSGI Aries Blueprint ClassCastException:Impl 无法转换为接口

Karaf v2.3.0,org.apache.aries.blueprint.core:1.0.1,在从另一个包导入的服务上调用接口方法时抛出 ClassCastException。接口方法定义在接口上,由实现类实现。我无法弄清楚服务代理如何认为它是 Impl (TicketServiceImpl) 而不是接口 (TicketService)。我很感激有关如何解决此问题的任何建议或建议。

例外:

奇怪的是,在异常之前,我打印了代理 .getInterfaces(),这意味着代理是 TicketService,而不是 TicketServiceImpl。

我还尝试在代理上强制进行 Class 测试:

0 投票
2 回答
4510 浏览

dependency-injection - 捆绑包中的蓝图依赖注入

我遇到了一个案例,我想在运行时使用 Blueprint (Aries) 来解决依赖关系,并且实现是在需要它的同一个包中定义的,并且不会在任何其他包中使用。我正在抽象这个包中的实现,以便在单元测试时更容易模拟依赖项。如果我将此服务放在自己的捆绑包中,则会导致内聚性差。

在运行时,蓝图表示它正在等待依赖项。如何使用 Blueprint 在包中实现依赖注入?

编辑

我刚刚尝试了@christian-scheider 的建议,Blueprint 仍在等待一些服务来满足 ModelEntityMapper

XML

日志

Bundle rest-cxf-server is waiting for dependencies [(objectClass=org.example.blog.rest.cxf.server.model.ModelEntityMapper)]

0 投票
1 回答
327 浏览

eclipse-virgo - Maven-Pax-Plugin 和 Gemini 蓝图 /Spring DM

以下情况:我们正在开发一个 OSGi 应用程序,最终产品应该使用 Eclipse Virgo。

为了与 OSGi 和 Spring 取得联系,我现在正在研究 OSGi 蓝图概念。我正在尝试使用 maven-pax-plugin 和 Gemini Blueprint/Spring-DM 但是当我运行 mvn pax:provision 时出现以下错误:

那么如何使用 pax 启用 Gemini Blueprint 或 Spring DM?

0 投票
2 回答
1278 浏览

java - 服务蓝图列表:等待所有服务

我正在使用 Eclipse Virgo/Gemini 蓝图,并且有一个具有多种实现的接口:

实施1:

实施2:

实施3:

还有一个客户:

startUp 方法是一个简单的方法,它遍历整个列表并打印出一个简单的字符串(用于测试目的)

问题是如果我安装客户端捆绑包,我的列表中只有两个树服务。如果我停止并再次启动 Bundle,所有三个服务都在我的列表中。

任何想法/建议为什么?

是否可以告诉 virgo 该列表必须包含与 MyInterface 匹配的所有服务?

如果您需要更多信息,请随时询问

0 投票
2 回答
7433 浏览

osgi - 将 Camel 代码部署到 ServiceMix ( FuseESB ) 时,OSGi 缺少要求 org.wiring.package = org.hsqldb

我已经编写了一些 Camel 代码,但是在 Windows 上部署到 FuseESB v7.10 时,我在日志中收到以下异常:

该项目使用 Blueprint OSGi xml 文件编写以定义 bean,然后使用 Maven 构建为 jar(而不是 OSGi 包),然后热部署到部署目录,因此它由 FuseESB FAB 部署程序部署。它在 Maven POM 中对 HSQLDB 没有显式依赖,所以我假设这是一个传递依赖。但是,我尝试安装我认为相关的捆绑包:

osgi:安装 mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.hsqldb/1.8.0.10_2

此捆绑包现在在 Karaf 控制台中显示为活动状态:

如果我运行命令 packages:exports 似乎表明此捆绑包导出了正确的依赖项:

但是我的包仍然无法启动,并给出了同样的错误。有任何想法吗?

0 投票
2 回答
385 浏览

apache-camel - jar 启动时,ServiceMix (FuseESB) 无法找到 Camel javascript 支持

在将 Camel 路由部署到 FuseESB 时,当 FuseESB 尝试启动 jar 文件时,它会在日志中给出以下异常:

这会导致捆绑包进入几分钟的宽限期,之后它会超时并且其状态会变为失败。请注意,我没有在应用程序中使用 javascript,但我假设它是作为加载 Camel 核心的一部分加载的。

我的设置的详细信息:

  • 有问题的代码是使用 OSGi 蓝图 xml 文件编写的以定义 bean。
  • 代码被打包为一个 jar,而不是 OSGi 包。
  • 代码通过拖放到部署目录中进行部署,因此它由 FAB 部署程序部署。

我相信我已经安装了相关的 Camel 功能。

特征输出:列表:

0 投票
1 回答
531 浏览

osgi - Blueprint CXF serviceFactories:每个请求都需要一个实例

我正在使用 Apache Karaf、CXF 和 Aries 蓝图。

我有一个包,它定义了许多 JAX-RS 服务。默认情况下,CXF 会将这些服务设为单例,但这对我不起作用。我需要一个新实例来处理每个请求。

参考CXF 文档,我尝试创建返回服务的新实例的 JAX-RS ServiceFactories。该文档有 Spring 的示例,我尝试使用 Blueprint 等价物。

蓝图无法开始给出错误

0 投票
3 回答
1704 浏览

java - 在 OSGi 中,传递服务引用是一种好的做法,还是应该由包自己查找?

我有这些捆绑:

  • Comm Service提供通信服务。
  • 通信是使用Comm Service发送/接收消息的通信包。
  • Poll以多播模式发送轮询消息。

捆绑包已经饱和,我的Communication方法是为特定操作实现其他捆绑包——投票捆绑包将负责发送民意调查,明信片捆绑包用于发送明信片等(只是一些示例)。

当捆绑需要委派其发送投票/明信片/消息的工作时,是否将Comm Service服务作为输入参数传递给捆绑?PollCommunication

下面的片段是否正确?

通讯包代码

还是让Poll/捆绑包自行Postcard检索服务的更好方法?Comm Service

0 投票
1 回答
792 浏览

spring - 使用蓝图加载 Spring 上下文并导出 Spring bean 引用

我是 OSGI 的新手。我们公司决定使用 Fuse ESB 作为我们的部署容器和蓝图作为 IOC。我面临的问题是我们在各种弹簧技术中有一堆弹簧应用程序,为简洁起见,让我们考虑弹簧批处理。我们已经习惯了 spring batch dsl 及其工作方式。有没有办法我可以使用相同的spring应用程序并通过蓝图加载它(Aries蓝图不是Gemini)并且还引用一个spring bean并通过蓝图导出它?这是一个公然的“不”,或者即使可能,考虑到一个 IoC 容器在另一个容器中是一种非常糟糕的做法,我们根本不应该尝试这样做?或者,如果有人尝试过,发现成功,如果可行,请提供一些指导。

0 投票
1 回答
7072 浏览

apache-camel - Karaf 中的 Aries 蓝图 - 蓝图能否引用外部属性文件

我正在使用 ActiveMQ 蓝图来设置 JMS 连接池。我还使用 Camel 来提供一些功能。

我使用org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer允许在设置文件时使用外部属性camel-context文件。

是否有使用蓝图的类似类型功能?

所以基本上,我想用我从以下配置中的属性文件中获得的属性替换 ${server.address}: