문제

httpClient-osgi 4.3.2 번들 (org.apache.httpcomponents : httpClient-osgi : 번들 : 4.3.2 HC 사이트 Apache Karaf OSGi 컨테이너 , 다음과 같은 오류 보고서가 발생합니다.

karaf@root> install mvn:org.apache.httpcomponents/httpclient-osgi/4.3.2
Bundle ID: 60
karaf@root> start 60
Error executing command: Error starting bundles:
    Unable to start bundle 60: Unresolved constraint in bundle 
    org.apache.httpcomponents.httpclient [60]: Unable to resolve 60.0: 
    missing requirement [60.0] osgi.wiring.package; 
    (&(osgi.wiring.package=org.apache.http.concurrent)(version>=4.3.0)
    (!(version>=4.4.0)))
.

헤더를 검사 할 때,로드하려고하는 종속성이 개인 패키지 로 표시되고 클래스가 번들 JAR에서 찾을 수 있습니다 :

karaf@root> headers 60
.

=>

...
Private-Package = 
org.apache.commons.codec,
    org.apache.commons.codec.binary,
    org.apache.commons.codec.digest,
    org.apache.commons.codec.language,
    org.apache.commons.codec.language.bm,
    org.apache.commons.codec.net,
    org.apache.http,
    org.apache.http.annotation,
    org.apache.http.concurrent,
    org.apache.http.config,
    org.apache.http.entity,
    org.apache.http.impl,
    org.apache.http.impl.entity,
    org.apache.http.impl.io,
    org.apache.http.impl.pool,
    org.apache.http.io,
    org.apache.http.message,
    org.apache.http.osgi.impl,
    org.apache.http.params,
    org.apache.http.pool,
    org.apache.http.protocol,
    org.apache.http.util
.

동시에 org.apache.http *도 가져 오기 패키지 패키지로 정의됩니다.

...
Import-Package = 
    javax.crypto,
    javax.crypto.spec,
    javax.net,
    javax.net.ssl,
    javax.security.auth.x500,
    org.ietf.jgss,
    org.osgi.framework;version="[1.5,2)",
    org.osgi.service.cm;version="[1.3,2)",
    org.apache.commons.logging;version="[1.1.0,1.2.0)",
    net.sf.ehcache;resolution:=optional,
    net.spy.memcached;resolution:=optional,
    org.apache.http.concurrent;version="[4.3.0,4.4.0)",
    org.apache.http.message;version="[4.3.0,4.4.0)",
    org.apache.http.impl.entity;version="[4.3.0,4.4.0)",
    org.apache.http.entity;version="[4.3.0,4.4.0)",
    org.apache.http.protocol;version="[4.3.0,4.4.0)",
    org.apache.http.impl.pool;version="[4.3.0,4.4.0)",
    org.apache.http;version="[4.3.0,4.4.0)",
    org.apache.http.params;version="[4.3.0,4.4.0)",
    org.apache.http.util;version="[4.3.0,4.4.0)",
    org.apache.http.io;version="[4.3.0,4.4.0)",
    org.apache.http.impl.io;version="[4.3.0,4.4.0)",
    org.apache.http.config;version="[4.3.0,4.4.0)",
    org.apache.http.pool;version="[4.3.0,4.4.0)",
    org.apache.http.impl;version="[4.3.0,4.4.0)"
.

카라파가 패키지의 내보내기를 찾고 번들을 활성화하지 못하도록하는 것으로 보입니다.

이 번들 매니페스트에 문제가 있습니까? 아니면 내가 뭔가를 놓치고 있니?

추신 : 나는 오래된 4.3.x와 KARAF 2.3.x 버전을 시도했다 - 같은 결과.

도움이 되었습니까?

해결책

HttpCore OSGi 번들과 묶음을 내보내는 Commons 내보내기 API 내보내기 HttpClient OSGi 번들의 필수 종속성을 충족시킵니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top