【发布时间】:2018-09-07 22:50:26
【问题描述】:
目前我有一种情况,我开发了一个项目,然后运行 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
【问题讨论】:
-
迄今为止我最接近的是从项目根目录运行
mvn bundle:bundle,然后在gogo控制台中:uninstall <bundle id>、install file:<path>和start <new bundle-id>但是,它没有被正确发布portalCore。我也怀疑为什么osgi_container/bundles/original-bundle-name根本没有更新(可能是因为它包含在容器启动之前“下载”的包,所以这不是什么大问题,但仍然)跨度> -
尝试启动一个包会导致一种错误 ` 15:35:08.375 [DEBUG] [NO_AUTH:NO_SESSION] [Gogo shell] roafbactivator.SomeActivator - 为 SOME 配置 servlet 支持 Guice 模块-External-Ad apter 15:35:08.397 [ERROR] [NO_AUTH:NO_SESSION] [Gogo shell] roafbactivator.SomeActivator - 捆绑 SOME-External-Adapter。未能启动。 java.lang.No ClassDefFoundError 由 java.lang.ClassNotFoundException (some.external.adapters.package.service.callback.SomeReplyReceiver not found by SOME-External-Adapter [150 ]) at ...`
-
在 org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation BundleWiringImpl.java:1574 在 org.apache.felix.framework.BundleWiringImpl.access$400 BundleWiringImpl.java:79 在 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
-
再次尝试重新安装捆绑包导致重新注册捆绑包时出现“地址已在使用中”错误。所以,没有 ClassNotFound 问题。不过需要更多调查
-
如果您有重要的附加信息,请勿将其发布在格式无法处理的 cmets 中。请编辑原始问题以添加信息。
标签: maven osgi apache-felix osgi-bundle pax-runner