【问题标题】:cannot run cxf in osgi xmlschema bundle missing (but it is installed)无法在缺少 osgi xmlschema 捆绑包中运行 cxf(但已安装)
【发布时间】:2012-05-28 11:05:02
【问题描述】:

我正在尝试在 karaf 中运行 cxf 包。它说缺少包 org.apache.ws.commons.schema 但已安装了相应的包(servicemix 包)

我不知道如果激活了捆绑包 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

【问题讨论】:

    标签: osgi cxf


    【解决方案1】:

    您使用的 CXF 版本似乎很旧。你能用最新的 CXF 版本测试吗?顺便提一句。你用的是什么 Karaf 版本?

    【讨论】:

    • 我切换到 singlebundle 版本 1.3.1 来解决这个问题。我更愿意将依赖项分开,但目前必须这样做。
    • 我还是不能让它运行,但是我有一个不同的错误,嘿嘿。我会努力解决的
    • 最新版本的 CXF (2.6.x) 现在有单独的包,这使得 CXF 在 OSGi 中非常模块化。由于该功能非常新鲜,您仍然可能会在单独的捆绑包中遇到一些小问题。使用 CXF 最简单的方法是使用 Karaf 2.2.7,然后执行“features:chooseurl cxf 2.6.0”和“features:install cxf”。我在这里有关于卡拉夫 CXF 的完整教程:liquid-reality.de/x/EoBk
    • 谢谢。实际上我之前找到了该教程,但我使用的 dosgi 似乎更容易。我现在正在使用蓝图
    【解决方案2】:

    首先,bundle 785 (xmlschema-1.4.3) 的状态是什么? 如果状态为resolved或者active,就ok了;如果它只是“安装”,那么它就有问题并且它导出的包在系统中可用。

    其次,检查由 bundle 785 导入的包是谁提供的。(org.w3c.dom 等) 你可能有以下情况: 如果捆绑 idb 导入例如org.w3c.dom 来自一个来源,而 xmlschema-1.4.3 从另一个来源导入它们(例如,不同的版本同时可用,或者框架本身和一些额外的包都提供它)然后框架将无法解决idb 与来自 xmlschema-1.4.3 的包捆绑在一起,因为这会在以后导致 ClassCastException。

    【讨论】:

    • 状态处于活动状态。我会检查你的建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2015-07-28
    • 2011-05-31
    相关资源
    最近更新 更多