【问题标题】:IllegalStateException when running Pax Exam运行 Pax Exam 时出现 IllegalStateException
【发布时间】:2012-08-06 11:42:06
【问题描述】:

运行 Pax Exam 时出现以下异常。我的配置仅包括来自文件系统和 junit 和 felix 的单个捆绑包。知道为什么会这样吗?

java.lang.IllegalStateException: Stream handler unavailable due to: null
    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.openConnection(URLHandlersStreamHandlerProxy.java:311)
    at java.net.URL.openConnection(URL.java:945)
    at org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:155)
    at org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:82)
    at org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:60)
    at org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:868)
    at org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:549)
    at org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:148)
    at org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:251)
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2541)
    at org.apache.felix.framework.Felix.installBundle(Felix.java:2501)
    at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:150)
    at org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:123)
    at org.ops4j.pax.exam.nat.internal.NativeTestContainer.installAndStartBundles(NativeTestContainer.java:319)
    at org.ops4j.pax.exam.nat.internal.NativeTestContainer.start(NativeTestContainer.java:163)
    at org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactor.invoke(AllConfinedStagedReactor.java:67)
    at org.ops4j.pax.exam.junit.JUnit4TestRunner$2.evaluate(JUnit4TestRunner.java:284)
    at org.ops4j.pax.exam.junit.JUnit4TestRunner.run(JUnit4TestRunner.java:93)

编辑:我正在使用 Pax Exam 2.5.0,以下是我的配置方法。

@Configuration
public Option[] config() {
    return options(
            bundle("file:/home/nufail/mybundle.jar"),
            junitBundles(),
            felix().version("3.2.2")
    );
}

【问题讨论】:

  • 如果没有看到您的代码,很难提供帮助。你能发一些吗?
  • 需要更多信息:您使用的是哪个 Pax 考试版本?您正在使用带有 Felix 的 Native Container,您能否提供更多配置部分(@Configuration)?
  • @ToniMenzel 我已经更新了这个问题。顺便说一句,它说 feilx() 方法已被弃用。获取felix的新方法是什么?

标签: java testing osgi pax pax-exam


【解决方案1】:

对于 4.9.2 版本,通过向 maven 添加以下依赖项解决了该问题

<dependency>
   <groupId>org.ops4j.pax.exam</groupId>
   <artifactId>pax-exam-link-mvn</artifactId>
   <version>4.9.2</version>
   <scope>test</scope>
</dependency>

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 2012-04-29
    • 2016-02-28
    • 2015-01-12
    • 2015-09-13
    • 2021-07-08
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多