Автоматическая загрузка всех зависимостей OSGi Bundle из Jersey - PullRequest
2 голосов
/ 23 марта 2012

Я пытаюсь использовать Джерси через OSGi (в частности, Караф). Чтобы сделать это, я скачал этот комплект банок из Maven и поместил его в каталог развертывания Karaf Однако, когда я попытался запустить пакет, он не смог разрешить ни одну из его зависимостей. Похоже, что он также ищет версию 0.0.0 для каждой зависимости, что кажется неправильным.

Как лучше всего добавить этот пакет в мой проект? Нужно ли вам вручную загружать все зависимости, или я могу использовать какой-либо существующий OBR с этим пакетом? Где бы я нашел это?

Ответы [ 2 ]

8 голосов
/ 28 марта 2012

Я использовал Jersey с Karaf без проблем, используя следующие зависимости вместо jersey-bundle:

<!-- Jersey -->
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-core</artifactId>
    <version>1.12</version>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.12</version>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.12</version>
</dependency>   

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.1.1</version>
</dependency> 

Я тестировал на последней консоли Karaf Apache, и это сработало для меня:

$ bin/karaf
  Apache Karaf (2.2.5)

karaf@root> install mvn:com.sun.jersey/jersey-core/1.12
Bundle ID: 49
karaf@root> install mvn:com.sun.jersey/jersey-server/1.12
Bundle ID: 50
karaf@root> install mvn:javax.ws.rs/jsr311-api/1.1.1
Bundle ID: 51
karaf@root> install mvn:com.sun.jersey/jersey-json/1.12
Bundle ID: 52
karaf@root> install mvn:org.codehaus.jackson/jackson-core-asl/1.9.5
Bundle ID: 53
karaf@root> install mvn:org.codehaus.jackson/jackson-jaxrs/1.9.5
Bundle ID: 54
karaf@root> install mvn:org.codehaus.jackson/jackson-mapper-asl/1.9.5
Bundle ID: 55
karaf@root> install mvn:org.codehaus.jettison/jettison/1.1
Bundle ID: 56
karaf@root> start 49 50 51 52 53 54 55 56
karaf@root> list 
   ID   State         Blueprint      Level  Name
[  49] [Active     ] [            ] [   60] jersey-core (1.12)
[  50] [Active     ] [            ] [   60] jersey-server (1.12)
[  51] [Active     ] [            ] [   60] jsr311-api (1.1.1)
[  52] [Active     ] [            ] [   60] jersey-json (1.12)
[  53] [Active     ] [            ] [   60] Jackson JSON processor (1.9.5)
[  54] [Active     ] [            ] [   60] JAX-RS provider for JSON content type, using Jackson data binding (1.9.5)
[  55] [Active     ] [            ] [   60] Data mapper for Jackson JSON processor (1.9.5)
[  56] [Active     ] [            ] [   60] jettison (1.1)
1 голос
/ 09 июля 2014

Я также пытался в Карафе (3.0.1), и он работал оштрафован.Я использовал Blueprint (в файле functions.xml) и добавил следующие 3 JAR-файла в качестве пакетов в свою функцию.Мне нужно было только преобразовать JSON в REST-сервис.

<feature name="feature-name-test" version="${pom.version}">
  ....
  <bundle>mvn:org.codehaus.jackson/jackson-core-asl/${jackson.version}</bundle
  <bundle>mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson.version}</bundle>
  <bundle>mvn:org.codehaus.jackson/jackson-jaxrs/${jackson.version}</bundle>
  ....
</feature>

, где $ {jackson.version} - это свойство, которое было определено в pom.xml (в моем случае 1.9.0).То же самое работает, если вы просто устанавливаете их с консоли Karaf.

...