主题:osgi kafka客户端捆绑包由于缺少约束而导致框架异常
我下载了 kafka-clients
ApacheServiceMix的osgi包(org.apache.servicemix.bundles.kafka-clients-0.11.0.1_1.jar)(https://mvnrepository.com/artifact/org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/0.11.0.1_1).
下面是我的 pom.xml
```
org.apache.servicemix.bundles
org.apache.servicemix.bundles.kafka-clients
0.11.0.1_1
我用它在 `sflow_collector` 我的应用程序模块使用osgi构建。一切正常,没有问题。
当我运行应用程序时,在加载 `sflow_collector` 模块。
org.osgi.framework.BundleException: The bundle "sflow-collector_1.0.0 [49]" could not be resolved. Reason: Missing Constraint: Import-Package: org.apache.kafka.clients.producer; version="[0.11.0,1.0.0)"
我查了Kafka·奥斯基包的清单,看起来不错。我在出口清单中看到了生产商(下面用粗体显示)。
Manifest-Version: 1.0
Bnd-LastModified: 1508749231115
Build-Jdk: 1.8.0_111
Built-By: jbonofre
Bundle-Description: This OSGi bundle wraps kafka-clients 0.11.0.1 jar file.
Bundle-DocURL: http://www.apache.org/
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-ManifestVersion: 2
Bundle-Name: Apache ServiceMix :: Bundles :: kafka-clients
Bundle-SymbolicName: org.apache.servicemix.bundles.kafka-clients
Bundle-Vendor: The Apache Software Foundation
Bundle-Version: 0.11.0.1_1
Created-By: Apache Maven Bundle Plugin
Export-Package:
org.apache.kafka.clients;version="0.11.0.1";uses:="org.apache.kafka.common,
org.apache.kafka.common.config,
org.apache.kafka.common.errors,
org.apache.kafka.common.internals,
org.apache.kafka.common.metrics,
org.apache.kafka.common.network,
org.apache.kafka.common.protocol,
org.apache.kafka.common.requests,
org.apache.kafka.common.utils",
org.apache.kafka.clients.admin;version="0.11.0.1";
uses:="org.apache.kafka.common,
org.apache.kafka.common.acl,
org.apache.kafka.common.annotation,
org.apache.kafka.common.config,
org.apache.kafka.common.errors",
org.apache.kafka.clients.consumer;version="0.11.0.1";
uses:="org.apache.kafka.clients.coumer.internals,
org.apache.kafka.common,
org.apache.kafka.common.config,
org.apache.kafka.common.errors,
org.apache.kafka.common.header,
org.apache.kafka.common.record,
org.apache.kafka.common.serialization",
org.apache.kafka.clients.consumer.internals;version="0.11.0.1";uses:="org.apache.kafka.clients,
org.apache.kafka.clients.consumer,
org.apache.kafka.common,
org.apache.kafka.common.errors,
org.apache.kafka.common.metrics,
org.apache.kafka.common.protocol,
org.apache.kafka.common.protocol.types,
org.apache.kafka.common.requests,
org.apache.kafka.common.serialization,
org.apache.kafka.common.utils",
org.apache.kafka.clients.producer;version="0.11.0.1";uses:="org.apache.kafka.clients.consumer,
org.apache.kafka.common,
org.apache.kafka.common.config,
org.apache.kafka.common.errors,
我无法解决这个问题。
非常感谢您的帮助。如果需要更多信息,请发送电子邮件。
1条答案
按热度按时间balp4ylt1#
正如您可能理解的,错误消息
缺少约束:导入包:org.apache.kafka.clients.producer;版本=“[0.11.0,1.0.0”)
.. 指示捆绑包(可能是您的捆绑包)导入“clients.producer”包,而容器中没有捆绑包导出具有给定版本的包。版本与您粘贴的kafka客户包清单匹配,因此没有问题。我的猜测是kafka客户机包没有部署在容器中,您必须部署它以及您自己的包。
你用的是哪个容器?如果是apachekaraf,您可能会在这个github项目中找到一些提示。