当前位置: 首页 > 知识库问答 >
问题:

ClassNotFoundException:org。阿帕奇。菲利克斯。马克。带Pax检查的DependencyActivatorBase

冀耀
2023-03-14

我正在使用Pax考试(3.5.0)进行OSGi单元测试。我已经创建了一个测试,但是当我运行它时,我得到了这个堆栈跟踪:

java.lang.NoClassDefFoundError: org/apache/felix/dm/DependencyActivatorBase
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2279)
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1501)
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1374)
    at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4329)
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
    at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1291)
    at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.apache.felix.dm.DependencyActivatorBase not found by com.company.wine.infrastructure [19]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 14 more

我已经配置了核心选项。mavenBundle(“org.apache.felix”、“org.apache.felix.dependencymanager”、“3.1.0”)在选项中,我看到了org。ops4j。圣像牌。登录中。pax日志api[org.ops4j.pax.swissbox.extender.BundleWatcher]:已加载扫描包[org.apache.felix.dependencymanager]

但我还是有例外。有人知道我做错了什么吗?

干杯

共有1个答案

傅志文
2023-03-14

您必须区分Pax Exam的设计方式和使用方式。Pax Exam的主要用例是在集成测试中使用它,测试以前构建的工件。如果你想在同一个模块中测试它,你有两种方法
1)在maven的集成测试阶段,通过一个文件引用新构建的工件:依赖。
2)构建一个包含可测试类和其他工件的小捆绑包。这还需要更改测试中的包导入/导出。在这里可以找到这样做的示例

 类似资料:
  • 我当前的应用程序使用Logback进行日志记录。我使用ApacheFelix部署了一个OSGi框架,允许在运行时动态注册捆绑包。Felix设置如下: 唯一的问题是Felix似乎没有日志记录。当一个包由于某种原因无法加载时,我不知道为什么!我知道我可以使用捆绑包中的以下内容来获取父记录器: 然而,我不明白首先如何让felix使用logback作为日志记录器。

  • 我正在做一个学术项目,涉及传感器的流数据。我已经包围了苍鹭(Storm的接班人)和尼菲。两者都支持内置背压,这对我的项目至关重要。Apache Nifi和Heron之间的主要区别是什么? 哪款更适合物联网应用?

  • 我正试图让我的Grails应用程序使用logback插件登录。根据文档说明,以下是我迄今为止所做的工作: 然后我运行了一个。当我运行一个时,我得到一个绝对巨大的堆栈跟踪,如下所示: 此外,在我的GGTS IDE中,添加到中的两个导入语句出现了编译器错误。听起来我的Grails应用程序中仍然有Log4j引用,并且运行将Log4j JAR从我的类路径中删除。这可能解释了堆栈跟踪。但这并不能解释为什么G

  • 我正在使用cmake Gui构建开罗。当我点击“配置”时,Cmake显示以下错误: 找不到PIXMAN,尝试在系统变量PIXMAN中设置PIXMAN根文件夹的路径(缺少:PIXMAN_LIBRARIESPIXMAN_INCLUDE_DIRS) 找不到ZLIB(缺少:ZLIB_LIBRARYZLIB_INCLUDE_DIR) C:/cmake-3.7.0-rc1-win32-x86/share/cm

  • 我们看到的是Apache Nifi和Gobblin,它们似乎在意图上有重叠。什么样的用例最适合哪个平台?它们将如何符合上面的用例? 谢了!

  • 有谁知道如何修复Checkmarx漏洞 - 基于java的应用程序的跨站点历史记录操作?以下是Checkmarx扫描提供的描述 - “该方法可能会泄漏服务器端条件值,从而允许用户从另一个网站进行跟踪。这可能构成侵犯隐私。 这是相关代码: 通过谷歌搜索,我发现了一些Checkmarx留档,建议在重定向网址中添加一个随机数。这是文档的链接:https://www.checkmarx.com/wp-co