我正在使用AEM 6.2,而我目前正在实施WebService。 我在OSGI包中包含了所有依赖jar,这是我在外部创建的,所有依赖问题都解决了,除了一个:
javax.xml.namespace,version = [1.0,2) - 无法解析
当我使用depfinder工具检查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显示已解析状态。
我遇到了这种情况,任何指针都会非常感激。
谢谢, Jineet
答案 0 :(得分:2)
如果仔细观察&#34; Package Dependency&#34;的输出。在工具中,您将看到 Maven 依赖项具有版本1.0.2
。另一方面,此程序包的导出版本为0.0.0.fragment_xml
。
我不知道为什么会这样,但这意味着您需要使用一些解决方法来解决此版本的捆绑包。
您基本要做的是更新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>
我希望这会有所帮助。
答案 1 :(得分:0)
maven central中有58个工件导出javax.xml.namespace,其版本与[1.0,2)
匹配。一个安全的选择可能是来自servicemix的包装javaxp-api:
摇篮:
'org.apache.servicemix.specs:org.apache.servicemix.specs.jaxp-api-1.4:2.8.0'
的Maven:
<dependency>
<groupId>org.apache.servicemix.specs</groupId>
<artifactId>org.apache.servicemix.specs.jaxp-api-1.4</artifactId>
<version>2.8.0</version>
</dependency>