Apache camel 在Jboss Fuse 6.2.1(结构管理)中安装hazelcast 3.6.5的问题

Apache camel 在Jboss Fuse 6.2.1(结构管理)中安装hazelcast 3.6.5的问题,apache-camel,hazelcast,apache-karaf,fusefabric,Apache Camel,Hazelcast,Apache Karaf,Fusefabric,我正在尝试在Jboss Fuse 6.2.1服务器结构管理中安装hazelcast-all-3.6.5版本。安装时,它抛出以下错误 Unable to update agent org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=appid1-hazelcast; type=karaf.feat

我正在尝试在Jboss Fuse 6.2.1服务器结构管理中安装hazelcast-all-3.6.5版本。安装时,它抛出以下错误

Unable to update agent org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] 
osgi.identity; osgi.identity=appid1-hazelcast; type=karaf.feature; version=0 
    [caused by: Unable to resolve appid1-hazelcast/3.0.1.release: missing requirement [appid1-hazelcast/3.0.1.release] 
osgi.identity; osgi.identity=com.hazelcast; type=osgi.bundle; version="[3.6.5,3.6.5]"; resolution:=mandatory 
    [caused by: Unable to resolve com.hazelcast/3.6.5: missing requirement [com.hazelcast/3.6.5] 
osgi.wiring.package; filter:="(osgi.wiring.package=sun.misc)"]] 
尝试安装片段包以公开sun.misc包,但出现以下错误:资源没有uri

片段束:mvn:com.diffplug.osgi/com.diffplug.osgi.extension.sun.misc/0.0.0

2017-03-16 18:02:22,814 | INFO  | 2.0.1-1-thread-1 | Agent                            | 72 - io.fabric8.fabric-agent - 1.2.0.redhat-621166 |   null
2017-03-16 18:02:22,814 | ERROR | 2.0.1-1-thread-1 | DeploymentAgent                  | 72 - io.fabric8.fabric-agent - 1.2.0.redhat-621166 | Unable to update agent
java.lang.IllegalStateException: Resource has no uri
        at io.fabric8.agent.service.Deployer.getBundleInputStream(Deployer.java:1466)[72:io.fabric8.fabric-agent:1.2.0.redhat-621166]
        at io.fabric8.agent.service.Deployer.deploy(Deployer.java:812)[72:io.fabric8.fabric-agent:1.2.0.redhat-621166]
        at io.fabric8.agent.service.Agent.provision(Agent.java:366)[72:io.fabric8.fabric-agent:1.2.0.redhat-621166]
        at io.fabric8.agent.service.Agent.provision(Agent.java:199)[72:io.fabric8.fabric-agent:1.2.0.redhat-621166]
        at io.fabric8.agent.DeploymentAgent.doUpdate(DeploymentAgent.java:733)[72:io.fabric8.fabric-agent:1.2.0.redhat-621166]
        at io.fabric8.agent.DeploymentAgent$4.run(DeploymentAgent.java:289)[72:io.fabric8.fabric-agent:1.2.0.redhat-621166]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_55]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_55]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_55]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_55]
        at java.lang.Thread.run(Thread.java:745)[:1.7.0_55]

注意:同样的方法在Fuse 6.1.0版本(单机版和结构版)中都可以正常工作

您需要激活对jboss中sun.misc.Unsafe包的访问。通常,OSGi框架有一些配置,您可以在其中启用从系统类加载器到bundles引导类委托的包。虽然不确定它在fabric8中到底是如何工作的,但这篇较旧的文章在过去修复了它,猜测配置仍然是一样的:

最初我将sun.misc包附加到etc/config.properties文件中的org.osgi.framework.system.packages.extra属性,但这并没有解决问题。这应该在90%的情况下有效

后来发现/etc/custom.properties文件中存在另一个名为org.osgi.framework.system.packages.extra的属性,将sun.misc package添加到/etc/custom.properties文件修复了该问题

# Branding
org.osgi.framework.system.packages.extra = org.apache.karaf.branding,com.sun.xml.bind.v2.model.core,sun.misc

你好,Noctarius,我已经添加了一个片段包来公开sun.misc包,它在fuse 6.1.0版本中运行良好。现在我们正在升级到fuse 6.2.1版本,因此面临这个问题。