AEM/CQ - javax.xml.namespace 无法解析 OSGI 依赖
AEM/CQ - javax.xml.namespace can't resolve OSGI dependency
我正在使用 AEM 6.2,目前正在实施 WebService。
我将所有依赖 jar 包含在我在外部创建的 OSGI 包中,所有依赖问题都得到解决,除了一个:
javax.xml.namespace,version=[1.0,2) -- Cannot be resolved
当我使用 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 显示已解决状态。
我遇到了这种情况,非常感谢任何指点。
谢谢,
吉尼特
maven central 中有 58 个工件导出 javax.xml.namespace,版本匹配 [1.0,2)
。一个安全的选择可能是来自 servicemix:
的包装 javaxp-api
Gradle:
'org.apache.servicemix.specs:org.apache.servicemix.specs.jaxp-api-1.4:2.8.0'
马文:
<dependency>
<groupId>org.apache.servicemix.specs</groupId>
<artifactId>org.apache.servicemix.specs.jaxp-api-1.4</artifactId>
<version>2.8.0</version>
</dependency>
如果您仔细查看 "Package Dependency" 工具的输出,您会看到 Maven 依赖项的版本为 1.0.2
。另一方面,此软件包的 exported 版本是 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>
希望对您有所帮助。
我正在使用 AEM 6.2,目前正在实施 WebService。 我将所有依赖 jar 包含在我在外部创建的 OSGI 包中,所有依赖问题都得到解决,除了一个:
javax.xml.namespace,version=[1.0,2) -- Cannot be resolved
当我使用 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 显示已解决状态。
我遇到了这种情况,非常感谢任何指点。
谢谢, 吉尼特
maven central 中有 58 个工件导出 javax.xml.namespace,版本匹配 [1.0,2)
。一个安全的选择可能是来自 servicemix:
Gradle:
'org.apache.servicemix.specs:org.apache.servicemix.specs.jaxp-api-1.4:2.8.0'
马文:
<dependency>
<groupId>org.apache.servicemix.specs</groupId>
<artifactId>org.apache.servicemix.specs.jaxp-api-1.4</artifactId>
<version>2.8.0</version>
</dependency>
如果您仔细查看 "Package Dependency" 工具的输出,您会看到 Maven 依赖项的版本为 1.0.2
。另一方面,此软件包的 exported 版本是 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>
希望对您有所帮助。