我正在尝试使用 rome 为 Adobe CQ 构建一个 osgi 包以生成 RSS/Atom 提要。捆绑包正在使用“maven-bundle-plugin (felix) 构建。我可以构建捆绑包而不会出现任何错误。但是在将相同部署到 CQ 时,使用 felix 控制台出现错误,请查找跟踪以下。
com.acme.wcm.cq.acme-corporate-services [310]: Unable to resolve 310.0: missing requirement [310.0] osgi.wiring.package; (osgi.wiring.package=oracle.xml.parser)) org.osgi.framework.BundleException: Unresolved constraint in bundle com.acme.wcm.cq.acme-corporate-services [310]: Unable to resolve 310.0: missing requirement [310.0] osgi.wiring.package; (osgi.wiring.package=oracle.xml.parser)
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3962)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2025)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
at org.apache.felix.webconsole.internal.core.InstallHelper.doRun(InstallHelper.java:67)
at org.apache.felix.webconsole.internal.core.BaseUpdateInstallHelper.doRun(BaseUpdateInstallHelper.java:89)
at org.apache.felix.webconsole.internal.core.BaseUpdateInstallHelper.run(BaseUpdateInstallHelper.java:121)
at java.lang.Thread.run(Unknown Source)
在尝试解决问题时,我们发现在 rome 的 pom 中,在 import package 部分中有对 oracle.* 的引用。
<Import-Package> oracle.*;resolution:=optional,org.jaxen*;resolution:=optional,org.jdom.*;resolution:=optional,*</Import-Package>
所以,如果我们在我们的包中添加一条指令来避免包的 pom 中的 oracle 依赖,例如
<Import-Package>!oracle.*</Import-Package>
它阻止了所有其他必需的进口。在这种情况下,我们是否需要在“Import-Package”部分指定所有必需的导入?请给我们一些指导来解决这个问题。
谢谢和问候,桑