2016-12-07 41 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