JBoss 保险丝:java.lang.IllegalStateException:资源没有安装包的 uri

JBoss Fuse: java.lang.IllegalStateException: Resource has no uri for installed bundle

我正在开发 JBossFuse 6.2,有一个 CXF 端点,我需要通过 httpj:engine-factory 配置块为其设置一些特殊属性。尝试后我遇到了这个问题 MapMetadataImpl not found by org.apache.cxf.cxf-rt-transports-http-jetty

错误如下

> ERROR | pool-43-thread-1 | BlueprintContainerImpl | 14 -
> org.apache.aries.blueprint.core - 1.4.2 | Unable to start blueprint
> container for bundle test-ws java.lang.NoClassDefFoundError:
> org/apache/aries/blueprint/reflect/MapMetadataImpl at
> org.apache.cxf.transport.http_jetty.blueprint.JettyServerEngineFactoryParser.parseEngineConnector(JettyServerEngineFactoryParser.java:110)
> at
> org.apache.cxf.transport.http_jetty.blueprint.JettyServerEngineFactoryParser.parse(JettyServerEngineFactoryParser.java:83)

尝试为 CXF 定义添加 httpj 块时出现。

<httpj:engine-factory bus="cxf">
    <httpj:engine port="${port}" host="${host}">
        <httpj:threadingParameters minThreads="${minThreads}" maxThreads="${maxThreads}"/>
    </httpj:engine>
</httpj:engine-factory>

我尝试了所提供的解决方案,在为 Blueprint Core Compatibility 安装 osgi 包的参考帖子中。

osgi:install mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0

但是,在容器启动时安装捆绑包后,出现以下异常:

 2016-06-22 11:01:13,279 | ERROR | 63859-1-thread-1 | DeploymentAgent                  | ?? | 83 - io.fabric8.fabric-agent - 1.2.0.redhat-133 | Unable to update agent 
    java.lang.IllegalStateException: Resource has no uri
    at io.fabric8.agent.service.Deployer.getBundleInputStream(Deployer.java:1354)[83:io.fabric8.fabric-agent:1.2.0.redhat-133]
    at io.fabric8.agent.service.Deployer.deploy(Deployer.java:714)[83:io.fabric8.fabric-agent:1.2.0.redhat-133]
    at io.fabric8.agent.service.Agent.provision(Agent.java:348)[83:io.fabric8.fabric-agent:1.2.0.redhat-133]
    at io.fabric8.agent.service.Agent.provision(Agent.java:194)[83:io.fabric8.fabric-agent:1.2.0.redhat-133]
    at io.fabric8.agent.DeploymentAgent.doUpdate(DeploymentAgent.java:642)[83:io.fabric8.fabric-agent:1.2.0.redhat-133]
    at io.fabric8.agent.DeploymentAgent.run(DeploymentAgent.java:256)[83:io.fabric8.fabric-agent:1.2.0.redhat-133]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_80]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_80]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_80]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_80]
    at java.lang.Thread.run(Thread.java:745)[:1.7.0_80]

有没有人在 JbossFuse 中应用过建议的解决方案?我不太了解为什么会触发该异常。

在此先致谢!

我有人陷入这个问题,我从 Red Hat 的某个人那里得到了答案。我遇到的问题是我在 Fabric 环境中,所以我必须将 OSGi Blueprint Core Compatibility 包添加到 Fabric 中的 Karaf 配置文件中。可以通过 运行 以下命令

从 karaf 控制台完成
profile-edit --bundles mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0 karaf 1.x

其中 1.x 是当前使用的结构版本。

如果您不在结构环境中,那么上面发布的解决方案应该可以正常工作。

希望对您有所帮助!