无法在osgi xmlschema捆绑包中运行cxf缺少(但已安装)

无法在osgi xmlschema捆绑包中运行cxf缺少(但已安装),osgi,cxf,Osgi,Cxf,我正试图在卡拉夫运行一个cxf包。它表示缺少包org.apache.ws.commons.schema,但已经安装了相应的捆绑包(servicemix捆绑包) 我不知道如果激活bundle 785(xmlschema),为什么依赖关系没有得到解决。我是否需要包含其他内容,或者我是否存在某种配置问题 OSGi>features:install idb Refreshing bundles org.springframework.jms (104) Error executing comman

我正试图在卡拉夫运行一个cxf包。它表示缺少包org.apache.ws.commons.schema,但已经安装了相应的捆绑包(servicemix捆绑包)

我不知道如果激活bundle 785(xmlschema),为什么依赖关系没有得到解决。我是否需要包含其他内容,或者我是否存在某种配置问题

OSGi>features:install idb
Refreshing bundles org.springframework.jms (104)
Error executing command: Could not start bundle 
mvn:org.apache.cxf/cxf-bundle-minimal/2.2.9 in feature(s)
 cxf-bundle-minimal-2.6.0: Unresolved constraint in bundle
 org.apache.cxf.bundle-minimal [832]: Unable to resolve 832.0:
 missing requirement [832.0] package;
 (&(package=org.apache.ws.commons.schema)(version>=1.4.0)(!(version>=2.0.0)))

OSGi>osgi:info 785

Apache ServiceMix Bundles: xmlschema-1.4.3 (785)
------------------------------------------------
OSGi>osgi:headers 785

Apache ServiceMix Bundles: xmlschema-1.4.3 (785)
------------------------------------------------
Manifest-Version = 1.0
Bnd-LastModified = 1237594240914
Tool = Bnd-0.0.255
Built-By = gnodet
Build-Jdk = 1.5.0_16
Created-By = Apache Maven Bundle Plugin

Bundle-Vendor = The Apache Software Foundation
Bundle-Name = Apache ServiceMix Bundles: xmlschema-1.4.3
Bundle-DocURL = http://www.apache.org/
Bundle-Description = This bundle simply wraps xmlschema-1.4.3.jar.
Bundle-SymbolicName = org.apache.servicemix.bundles.xmlschema
Bundle-Version = 1.4.3.1
Bundle-License = http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-ManifestVersion = 2

Import-Package = 
javax.xml.namespace,
javax.xml.parsers,
javax.xml.transform,
javax.xml.transform.dom,
javax.xml.transform.sax,
javax.xml.transform.stream,
org.apache.ws.commons.schema;version=1.4.3,
org.apache.ws.commons.schema.constants;version=1.4.3,
org.apache.ws.commons.schema.extensions;version=1.4.3,
org.apache.ws.commons.schema.resolver;version=1.4.3,
org.apache.ws.commons.schema.utils;version=1.4.3,
org.w3c.dom,
org.xml.sax
Export-Package = 
org.apache.ws.commons.schema.resolver;uses:=org.xml.sax;version=1.4.3,
org.apache.ws.commons.schema.utils;
    uses:="org.apache.ws.commons.schema,
        javax.xml.namespace,
        org.w3c.dom";
    version=1.4.3,
org.apache.ws.commons.schema;
    uses:="org.xml.sax,
        javax.xml.namespace,
        org.w3c.dom,
        javax.xml.transform,
        org.apache.ws.commons.schema.extensions,
        javax.xml.transform.dom,
        javax.xml.transform.sax,
        org.apache.ws.commons.schema.resolver,
        org.apache.ws.commons.schema.utils,
        javax.xml.parsers,
        org.apache.ws.commons.schema.constants,
        javax.xml.transform.stream";
    version=1.4.3,
org.apache.ws.commons.schema.constants;
    uses:=javax.xml.namespace;
    version=1.4.3,
org.apache.ws.commons.schema.extensions;
    uses:="org.apache.ws.commons.schema,
        javax.xml.namespace,
        org.w3c.dom";
    version=1.4.3

您使用的CXF版本似乎很旧。您能用最新的CXF版本来测试这一点吗?顺便说一句,您使用的是什么Karaf版本?

首先,bundle 785(xmlschema-1.4.3)的状态是什么? 如果状态已解决或处于活动状态,则为ok;如果它只是“已安装”,那么它就有问题,并且它导出的包在系统中不可用

其次,检查谁提供了bundle 785导入的包。(org.w3c.dom等) 您可能出现以下情况:
如果bundle idb从一个源导入例如org.w3c.dom,而xmlschema-1.4.3从另一个源导入它们(例如,不同的版本同时可用,或者框架本身和其他一些bundle都提供),那么框架将不会使用xmlschema-1.4.3中的包解析idb bundle,因为这将导致以后出现ClassCastException。

状态为活动状态。我将检查您的建议我切换到singlebundle发行版1.3.1来解决这个问题。我更愿意将依赖项分开,但目前必须这样做。我仍然无法使它运行,但我有一个不同的错误,呵呵。我将试着弄清楚最新版本的CXF(2.6.x)现在有单独的捆绑包,这使得CXF在OSGi中非常模块化。由于该功能非常新,您仍然可能会在使用单独的bundle时遇到一些小问题。使用CXF最简单的方法是使用Karaf 2.2.7,只需执行“功能:选择URL CXF 2.6.0”和“功能:安装CXF”。我这里有一个关于卡拉夫CXF的完整教程:谢谢。我以前确实找到过那个教程,但我使用的是dosgi,看起来更简单。我现在用的是蓝图