我正在使用 AEM 6.2,目前正在实现 WebService。 我在外部创建的 OSGI 包中包含了所有依赖项 jar,并且所有依赖项问题都得到了解决,除了一个:
javax.xml.namespace,version=[1.0,2) -- Cannot be resolved
当我使用 depfinder 工具 checkin Maven 时,它显示如下:
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.fragment.ws</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>
但是,在我的其他自定义项目中,javax.xml.namespace 显示已解析状态。
我陷入了这种情况,任何指示都将非常感激。
谢谢, 吉尼特
最佳答案
如果仔细查看“Package Dependency”工具的输出,您将看到 Maven 依赖项的版本为 1.0.2
。另一方面,此软件包的导出版本是 0.0.0.fragment_xml
。
我不知道为什么会这样,但这意味着您需要使用一些解决方法来解决此版本的 bundle 。
您基本上要做的就是更新您的 MANIFEST.MF
并将导入的版本从 1.0.2
更改为至0.0.0.fragment_xml
.
我们正在使用 Maven 和 maven-bundle-plugin
插件来实现这一点:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>
javax.xml.namespace;version="0.0.0.fragment_xml",
*
</Import-Package>
</instructions>
</configuration>
</plugin>
我希望这会有所帮助。
关于java - AEM/CQ - javax.xml.namespace 无法解析 OSGI 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44370232/