2013-03-02 3 views
1

Я пытаюсь запустить свой пакет, созданный Maven в контейнере FUSE ESB OSGi. Но я получил ошибку с тремя зависимостями:OSGi использует ограничение ограничений

1. libthrift-0.7.0.jar 
2. httpclient-4.0.1.jar 
3. httpcore-4.0.1.jar 

Error executing command: Error starting bundles: 
Unable to start bundle 262: Uses constraint violation. Unable to resolve bundle 
revision file__opt_FuseESBEnterprise-7.1.0_deploy_libthrift-0.7.0.jar [316.0] 
because it is exposed to package 'org.apache.http' from bundle revisions 
org.apache.httpcomponents.httpcore [291.0] and org.apache.httpcomponents.httpclient  
[290.0] via two dependency chains. 

Chain 1: 
file__opt_FuseESBEnterprise-7.1.0_deploy_libthrift-0.7.0.jar [316.0] 
import: (osgi.wiring.package=org.apache.http) 
| 
export: osgi.wiring.package=org.apache.http 
org.apache.httpcomponents.httpcore [291.0] 

Chain 2: 
file__opt_FuseESBEnterprise-7.1.0_deploy_libthrift-0.7.0.jar [316.0] 
import: (osgi.wiring.package=org.apache.http.client) 
| 
export: osgi.wiring.package=org.apache.http.client; uses:=org.apache.http 
export: osgi.wiring.package=org.apache.http 
org.apache.httpcomponents.httpclient [290.0] 

Может кто-нибудь объяснить мне, что это ошибка о?

+0

Прочитать мое сообщение в блоге для объяснения «использует ограничения» в OSGi: http://njbartlett.name/2011/02/09/uses-constraints.html –

+0

Спасибо за сообщение Neil. Теперь я выясню, что проблема заключается в 'apache.http', который, как' ulti.verify', показан в вашем примере. В своем сообщении вы даете решение, удаляя дублирование. Но мне интересно, как его удалить. Изменив экспорт в манифесте? –

ответ

2

Как вы установили пакеты http core и client bundles?

Вы можете попробовать установить camel-http4 как функцию, поскольку она предоставляет клиент http из коробки.

features:install camel-http4 

И после этого просто установите свой собственный комплект.

Смежные вопросы