0

我正在尝试使用 rome 为 Adob​​e 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”部分指定所有必需的导入?请给我们一些指导来解决这个问题。

谢谢和问候,桑

4

1 回答 1

1

您需要添加*以指示 OSGi 导入所有其他依赖项:

<Import-Package>!oracle.*,*</Import-Package>
于 2014-04-17T19:08:47.107 回答