2017-04-30 2 views
0

Ich habe versucht, ein OSGI-REST-Paket zu starten. Ich habe das folgende Importpaket: javax.ws.rs, org.codehaus.jackson.jaxrs, org.apache.cxf.jaxrs.client,OSGI Root konnte nicht aufgelöst werden: Fehler beim Starten des Bundles 'fehlende Anforderung' mit javax.ws.rs: osgi.wiring.package

Wenn ich das Bündel ausführen, erhalte ich den folgenden Fehler: osgi.wiring.package; Filter: = "(! & (osgi.wiring.package = javax.ws.rs) (Version> = 2.0.0) ((Version> = 3.0.0)))"]]]

+0

Klingt wie ein Abhängigkeitsproblem. Können Sie die Abhängigkeiten, die Sie ziehen? Bringst du cxf-rt-frontend-jaxrs und/oder javax.ws.rs-api mit? –

+0

Die Daten sind unvollständig. Kannst du vollständige Logs und manifest.mf deines Bundles anlegen? – Shinchan

Antwort

0

Schritt 1 : überprüfen Sie, dass Sie diese Pakete in die Bündel (Runtime-Import) importiert:

-Wenn Sie Ihr Bündel mit maven-Bundle-Plugin bauen, in der pom.xml wie folgt tun:

<plugin> 
     <groupId>org.apache.felix</groupId> 
     <artifactId>maven-bundle-plugin</artifactId> 
     <extensions>true</extensions> 
     <configuration> 
      <instructions> 
       ... 
       <Import-Package> 
       javax.ws.rs*, 
       org.codehaus.jackson*, 
       org.apache.cxf.jaxrs*, 
       </Import-Package> 
       ... 
      </instructions> 
     </configuration> 
    </plugin> 
  • Wenn nicht, listet diese Pakete in der Datei "manifest.mf" auf.

Schritt 2: ckeck dass diese Pakete gut in Behälter eingesetzt werden: zur Verfügung gestellt oder von Hand in den Behälter eingesetzt. Wenn Sie Apache Karaf verwenden, gibt es eine Funktion namens cxf-jaxrs => install/start it.

Verwandte Themen