2016-12-07 39 views
0

我試圖連接到第三方API服務,並認爲使用jersey-all庫。但是從maven安裝並部署到AEM 6.2服務器後。 但是由於以下錯誤,項目捆綁包未處於「活動」狀態,而是「已安裝」。jersey-all(v.2.22.2)在系統控制檯中創建未解析的包 - AEM 6.2

Unresolved packages in the system/console/bundle section

Maven的扶養

<dependency> 
    <groupId>com.eclipsesource.jaxrs</groupId> 
    <artifactId>jersey-all</artifactId> 
    <version>2.22.2</version> 
    <scope>provided</scope> 
</dependency> 

請讓我知道,如果你有這方面的任何解決方案。

謝謝

回答

1

此依賴關係指定的範圍是provided。這意味着Maven將下載這些工件以構建您的項目,但不會將它們嵌入到生成的OSGi包中。

它們預計將由OSGi運行時提供,並且您可以看到以紅色突出顯示的包需要由另一個包導出(直至指定的版本限制)。

您可以在OSGi控制檯中使用依賴查找器來查看是否有任何內容導出包。

轉到/system/console/depfinder並搜索軟件包。

它們可能以不同於預期的版本導出或根本不導出。

安裝導出這些軟件包的正確版本的軟件包應允許啓動軟件包。

+0

感謝您的回覆。我刪除「提供」後再次運行,現在它只給我一個未解決的錯誤。 'javax.annotation,version = [1.2,2) - 無法解析'。我如何使用/ system/console/definder來查找軟件包。我是否需要找到'javax.annotation'包? – Harsha

+0

@Harsha簡單地刪除顯式的'provided'範圍使得Maven使用默認的'compile'範圍。您現在將澤西島瓶子嵌入您自己的OSGi包中。現在,我猜測我沒有嘗試過這個,但是你正在使用來自'com.eclipsesource.jaxrs'的'jersey-all' artefact,這是Jersey的OSGi版本,可能期望它的依賴由OSGi環境。如果你想在你的包中嵌入Jars,請嘗試使用非OSGi版本。但我寧願使用OSGi安裝程序自行部署Jersey捆綁包,並確保所有依賴項都可用。 – toniedzwiedz

+0

也可能是由Jersey使用的'javax.annotation'版本與Sling Models導出的版本之間存在一些衝突。依賴查找器應該會顯示導出該包的所有包。 – toniedzwiedz