问题标签 [spring-dm]

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 投票
0 回答
1109 浏览

osgi - 注册一个 OSGI 服务并使用 WSO2 产品获取该 OSGI 服务的引用

实际上我想将我的应用程序从 FUSE ESB 迁移到 WSO2esb。在我的 FUSE 应用程序中,我为 Logger 创建了一个 OSGI 包,并在 OSGI 注册表中注册了 Logger 服务。其他 OSGI 包可以通过引用它来获取该 OSGI 服务。

我使用 servicemix-camel-osgi artifactId 为 Logger 创建了一个 OSGI maven 项目。我使用了 Apache Camel 方法,因此创建了一个 MainRoute xml 文件。

在这个文件中,我创建了 LoggerImpl 类的 Spring bean,并使用 SpringDM 将其注册为 OSGI 服务。然后我使用 servicemix-camel-osgi artifactId 创建了 ABC 的其他 Maven 项目,并且在该项目中我创建了一个路由文件。它看起来像:

所以如上面的文件所示,我已经使用 OSGI Refrence 获得了 Logger 服务。

这样做的主要动机是当我在注册表中注册 Logger OSGI 服务时,任何 OSGI 包都可以使用它的引用而不是导入包来使用该服务。同样的事情想在 WSO2 中实现,但无法得到任何解决方案。

如果有任何解决方案或建议,请建议我,以便我实现。谢谢。

0 投票
1 回答
1709 浏览

spring - 使用 Spring 在 OSGi 包中查找带注释的类?

我想在 OSGi 包中找到所有用我的自定义注释注释的类,
实际扫描必须在包本身内部进行,或者从另一个包中进行,
我尝试过使用ClassPathScanningCandidateComponentProvider,但它会导致异常:

我有 99% 的把握,像reflections其他扫描库这样的解决方案也不起作用,现在不记得为什么了

我可以像这样配置组件扫描:

并从bean工厂获得我需要的东西,但这需要将@Scope(“prototype”)添加到我所有带注释的类中,所以spring默认情况下不会创建单例等等。
有什么更好的解决方案吗?

-我的注释类没有@Component 或任何与spring 相关的东西
-osgi 框架(eclipse equinox 3.8)嵌入到Web 应用程序中
-使用spring 3.2.3 和gemini-blueprint 2.0.0.M02

0 投票
1 回答
622 浏览

osgi - Virgo Osgi Web Bundle - Web-Fragment

我的问题是网络片段包不起作用。

我有两个项目:

我使用此 manifest.mf 创建与 Virgo Server 的 Web 包的地方:

处女座服务器上的项目部署工作找到。我什至可以在localhost:8080/hello.

但是,当我使用此 manifest.mf 创建另一个捆绑项目(Web 片段)时:

部署工作,但与 /hello 上下文路径或first-maven-virgo-projectweb 包没有绑定。

我的项目有什么问题?Virgo 是否支持 Web-Fragment OSGI?

谢谢。

0 投票
1 回答
294 浏览

osgi - Osgi Spring DM - 通过 Bundle 检索所有 bean

使用 Eclipse Virgo 我有一个带有实现 BundleContextAware 的 bean 的 Bundle,我添加了一个 addBundleListener 并在 Bundle 启动或停止时正确接收事件,没关系。并通过 bundleChanged 事件安装一个包。

现在,我需要检索已安装包的应用程序上下文的所有 bean,检索包的应用程序上下文的最佳方法是什么?

0 投票
2 回答
36217 浏览

java - 捆绑包中未解决的约束,缺少要求 osgi.wiring.package

我有一个使用 OSGi-(felix)、SpringDM、hibernate、maven 的项目。当我安装捆绑包时,没关系,当我运行捆绑包ID时的输出是:

这是我看到的,当我启动这个捆绑包时:

这是我的 beans.xml:

这是我的 pom 文件:

此外,felix 中存在 bundle 的完成错误。

0 投票
0 回答
286 浏览

osgi - OSGi + Spring DM + RMI 自定义 RemoteInvocation ClassNotFound

一开始我想声明 rmi 正在工作,当我没有配置 bean 以使用我的 remoteInvocationFactory 时。

我的结构:我有 2 个 Web 应用程序,都具有嵌入式 osgi 框架(Equinox 3.9),WebAppServer - 在其 osgi 内部,有一个捆绑包,将 osgi 服务导出为 rmi 服务,
WebAppClient - 在其 osgi 内部,有捆绑包,消耗rmi 服务

两个 webapps 都使用 spring dm (gemini-blueprint 2.0.0.M02)

在 WebAppServer 中,我通过实例化RmiServiceExporter并调用 prepare() 来导出 rmi。

在客户端(WebAppClient),这就是我在包内定义 rmi 代理 bean 的方式

正如我之前所说,如果我想指定我的自定义远程调用工厂,我可以成功调用该服务,问题就开始了:

工厂提供MyCustomRemoteInvocation

现在,当我调用服务时,我得到

我不想启用 rmi 类加载器,缺少的类在服务实现中可用,(它由安装在 osgi 框架中的包导出),我尝试在其他地方导入它,但没有运气,有什么想法吗?

0 投票
1 回答
689 浏览

java - 使用 Spring 集成测试的 OSGi 片段

鉴于到目前为止我还没有找到任何相关的答案,所以我发布了这个问题。我不知道如何使用 Spring-Dynamic Modules 运行集成测试。

问题定义

模板申请

  • 一个包含业务逻辑的 OSGi 包。使用 Spring DM 导出/引用一些服务
  • 一个用于集成测试的 OSGi 片段。测试应该能够注入在片段应用程序上下文中定义的辅助测试 bean(使用 META-INF/spring 下的 xml 文件)以及导出的 OSGi 服务(来自 API 包)

版本

  • OSGi 3.6
  • Spring 框架 3.1.0
  • Spring 动态模块 1.2.1

问题

  • 如何运行集成测试以了解 Spring 应用程序上下文和公开的 OSGi 服务?使用@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath:META-INF/spring/context.xml" })导致FileNotFoundException存在的有关 context.xml... 调试XmlBeanDefinitionReader证实了我的疑问:SpringJUnit4ClassRunner正在尝试从其 OSGi 类路径加载应用程序上下文,并且无法访问我的捆绑资源。

请问您如何最好地解决这个问题?

我提前感谢您的帮助。

ps:我看了一下Spring DM Test,但没有发现任何相关内容。

例子

捆绑清单

集成测试片段清单

分片应用上下文

测试班

0 投票
1 回答
275 浏览

spring - 查询:如何使用 Spring-DM 驱动的 OSGi 包作为 Web 服务公开

我一直在做一个项目来创建 OSGi 包并将它们作为服务公开。我已经阅读了足够多的 OSGi 服务,我必须说我对此有很好的想法。我刚刚接触到 Spring-DM 框架并快速浏览了它的参考手册,我必须说我很高兴使用它,因为它提供了相当简单的“声明式”方式来将 bundle 公开为服务。

但是,我无法弄清楚如何使用 Spring-DM 将我的包公开为“Web 服务”。

我想看看下面的链接,它显示了如何将 Apache-CXF 与 Spring-DM 一起使用以将包公开为 Web 服务:

http://cxf.apache.org/dosgi-spring-dm-demo-page.html

但是,我无法理解他们解释“端点描述”标签部分的部分。

有人可以建议/指导我使用 Spring-DM 将我的包公开为“网络服务”吗?

提前谢谢了。

最好的问候 LB

0 投票
2 回答
1569 浏览

java - 运行 JUNIT 测试用例时加载 ApplicationContext 失败

我在 ServiceMix Container 中部署了一个 OSGI Bundle (B)。B 还充当 OSGI 端点。我们可以看到以下行(来自我的 ApplicationContext.xml)

现在,我在同一个 servicemix 容器中部署了另一个 Bundle (C),并且 C 想要使用从 B 公开的 OSGI 服务。所以我在 Bundle C 的 applicationContext 中添加了以下行。

到目前为止,一切都很好。现在我在 Bundle C 中编写了一个 JUNIT 测试用例,它尝试在执行测试用例之前加载它的 applicationContext.xml。这是我的测试类的片段:

每当我尝试运行这个单元测试用例时,我都会得到java.lang.IllegalStateException:。这太笼统了,无法为我提供有关该问题的任何线索。

这是我在控制台中看到的异常的堆栈跟踪:

我不确定是什么导致了这个问题。我尝试从 POM.xml 中删除 JARS,但这也有帮助。我还在 Stackoverflow 中寻找了类似的问题,但其中大多数都是通过更改我的测试类中的 Application-Context.xml 的类路径来回答的,这肯定不是我的情况。一旦我从 Bundle C中删除<osgi:reference> ,我的测试就会成功运行。

任何建议都会有所帮助。谢谢。

0 投票
1 回答
240 浏览

osgi - 模块化 Spring MVC 应用程序

我想开发具有核心服务和实用程序以及模块化控制器服务堆栈的模块化 Spring MVC 应用程序。我应该使用哪个 OSGi 框架?我找到了 Spring Dynamic Modules,它有据可查,但这是一个死项目,我没有找到足够的关于集成它的继任者 - Blueprint 和 Spring 的参考资料。还是其他?