我导入了与pdxt相关的maven pom依赖项,我的构建成功,但Felix控制台说下面的错误导致该bundle处于 INSTALLED 状态而不是ACTIVE。
com.itextpdf.text - 无法解析
com.itextpdf.text.pdf - 无法解决
我在maven中有什么具体的改变吗?
答案 0 :(得分:1)
Apache Felix无法解析这些依赖项,因为它缺少iText所需的元数据。您需要使用一个版本的iText PDF,它是一个 OSGI包而不是一个普通的JAR,以便解决这些依赖关系。
如果iText开发人员不提供该库的OSGI版本,则必须自行转换。 This development article或this one有关于如何将简单JAR转换为要在AEM中使用的OSGI包的说明。
您还可以做什么(如果您不关心将iText作为OSGI容器中的独立模块),则将jar嵌入CRX包中。
在您的内容包pom.xml
中:
<plugin>
<groupId>com.day.jcr.vault</groupId>
<artifactId>content-package-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<group>Acme</group>
<filterSource>src/main/content/META-INF/vault/filter.xml</filterSource>
<embeddeds>
<embedded>
<groupId>com.acme</groupId>
<artifactId>aem.core</artifactId>
<target>/apps/acme/install</target>
</embedded>
<embedded>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<target>/apps/acme/install</target>
</embedded>
</embeddeds>
</configuration>
</plugin>
答案 1 :(得分:0)
全部谢谢,
我已在com.itextpdf.*
标记中添加<Export-package>
来解决此问题。这解决了我的问题。
注意:我还必须在导出和导入标记中添加其他未解析的依赖项。
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>my-group-id.myexampleproj-bundle</Bundle-SymbolicName> <Export-Package>com.itextpdf.*,org.bouncycastle.*,org.apache.xml.security.*,org.apache.jcp.xml.dsig.*,org.apache.xml.*,org.apache.log.*,org.apache.jcp.*,org.apache.avalon.*,org.apache.xerces.*,org.apache.xpath.*,org.apache.xalan.*,org.apache.jcp.xml.dsig.internal.dom,org.apache.bcel.*,org.apache.xml.resolver.*,org.apache.regexp,java_cup.runtime</Export-Package>
<Import-Package>
sun.security.util;resolution:=optional,
sun.io;resolution:=optional,
*
</Import-Package>
</instructions>
</configuration>