使用rome-1.0为Adobe CQ构建osgi包

时间:2014-04-17 15:21:05

标签: eclipse maven osgi cq5 rome

我正在尝试使用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)

在尝试解决问题时,我们发现在罗马的pom中,在导入包部分中有对oracle。*的引用。

<Import-Package> oracle.*;resolution:=optional,org.jaxen*;resolution:=optional,org.jdom.*;resolution:=optional,*</Import-Package>

所以,在我们的bundle中,如果我们在bundle的pom中添加一条避免oracle依赖的指令,比如

<Import-Package>!oracle.*</Import-Package> 

它阻止了所有其他必需的导入。在这种情况下,我们是否需要在“Import-Package”部分中指定所有必需的导入?请给我们一些解决这个问题的建议。

谢谢和问候, 圣

1 个答案:

答案 0 :(得分:1)

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

<Import-Package>!oracle.*,*</Import-Package>