我正在尝试使用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”部分中指定所有必需的导入?请给我们一些解决这个问题的建议。
谢谢和问候, 圣
答案 0 :(得分:1)
您需要添加*
来指示OSGi导入所有其他依赖项:
<Import-Package>!oracle.*,*</Import-Package>