问题标签 [pax-runner]

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 回答
163 浏览

osgi-bundle - 我可以找到任何最新的 PAX 考试样本,以使用 Java 8 测试 OSGi 声明式服务包吗?

我正在尝试使用最新的 pax-exam-container-forked 和 Java 8 创建测试环境,但是存在许多冲突,但由于对 maven 不同版本的依赖很多,因此无法解决。

我从earcam的回答中得到了参考,这解释得很好,而且是非常古老的pax考试和java 6。

谢谢。

0 投票
2 回答
473 浏览

maven - 如何使用运行 Apache Felix 从 Maven 工件更新包

目前我有一种情况,我开发了一个项目,然后运行mvn install并将它作为一个简单的 JAR 文件放入我的本地 Maven 存储库

然后,我有一个由其他人制作的“环境”,其中包括很多捆绑包和东西,最终通过mvn pax:run它运行,运行大约需要 5 分钟

我希望能够运行felix:update <bundle-name>,但我无法填补本地 Maven 存储库中的 Maven JAR 工件和我可以放在某个地方运行felix:update或其他任何东西的准备好配置包之间的空白uninstall/install

当我尝试mvn pax:create-bundle使用我的项目运行时,它会引发Containing project does not have packaging type 'pom'异常

非常感谢任何帮助

更新:我注意到重新安装捆绑包的问题始于它的激活器,带有 ClassNotFoundException (尽管提到的类始终存在于捆绑包中,因此它必须与类路径、类加载器设置或其他问题有关)

at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation BundleWiringImpl.java:1574 at org.apache.felix.framework.BundleWiringImpl.access$400 BundleWiringImpl.java:79 at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass BundleWiringImpl.java:2018 at java.lang.ClassLoader.loadClass ClassLoader.java:357 at some.external.adapters.package.guice.SomeModule.configure SomeModule.java:46 at com.google.inject.AbstractModule.configure AbstractModule.java:59

0 投票
0 回答
59 浏览

cassandra - 系统使用 Pax-runner 可以正常工作,但不能使用 Karaf。数据税例外。游泳池很忙

我正在公司开发一项功能,旨在用完整的 Karaf 容器替换 OSGi 部署(现在使用 Pax-runner,Equinox 作为框架,使用 pax:provision)。以下是我正在执行的步骤:

1 - 运行pax:directory而不是“pax:provision”,以生成一个名为config.ini的文件,其中包含包的启动顺序。

2-我将所有通过pax:directory聚合到文件夹中的包复制到 karaf 根目录。

3- 我创建了一个 Java 项目 (KarafProvisioner),一个 osgi 包,它从 config.ini 读取包,并启动 jar 包。电源逻辑如下所示。

有了这个 KarafProvisioner 捆绑包,我可以启动所有捆绑包,并且我放置了一个循环来继续尝试启动所有内容。一切看起来都正常,因为系统拥有的所有 350 个捆绑包都是ACTIVE

观测值

  • 我已经尝试生成 features.xml 来自动部署应用程序,但它不起作用。

  • 我使用 webconsole 功能启动 Karaf,因此默认情况下,Karaf 以大约 50 个捆绑包启动,例如 logf4j、jetty 等。我将 KarafProvisioner 与此功能一起默认启动。

  • 使用 pax-runner 所有的包都正常启动。并且系统运行良好。

这种方法部分有效,因为所有捆绑包都处于活动模式,但问题是:

该应用程序使用 Cassandra 数据库,带有一个封装所有操作的内部 java 项目,并创建一个通用接口来操作存储。使用 pax-runner 一切正常,但使用 Karaf 会显示此错误:

我的问题是:

1-我使用辅助包来加载所有剩余的包这一事实是否会影响系统的流量?考虑到使用 pax-runner 一切都变得活跃。

2- Cassandra的问题,接口和datastax,与OSGi的东西有什么关系吗?(Obs. 1-接口使用OSGi环境中的一个属性来了解Cassandra数据库的主机和端口,以及这个属性没问题。2-数据库已启动,并使用Dbeavercqlsh对此进行了检查。)

3-有什么方法可以在不修改界面的情况下解决这个问题?也许使用一些配置?

再次,使用pax-runner(带有equinox简单包)一切正常。当我尝试在 Karaf 容器中部署应用程序时,问题就出现了。

0 投票
1 回答
210 浏览

junit - 使用 Pax 考试测试内部课程

目前我有使用 Pax-Exam 5 测试内部类的测试类。

我使用 Fragment-Host 的原因是为了避免为 bundle com.mycompany.abc 导出内部包。但我得到这个错误

还有其他解决方案吗?

谢谢