在maven中导入itext pdf无法在felix控制台中解析

时间:2017-01-10 14:05:22

标签: java maven aem apache-felix osgi-bundle

我导入了与pdxt相关的maven pom依赖项,我的构建成功,但Felix控制台说下面的错误导致该bundle处于 INSTALLED 状态而不是ACTIVE。

  

com.itextpdf.text - 无法解析

     

com.itextpdf.text.pdf - 无法解决

我在maven中有什么具体的改变吗?

ERROR IN FELIX BUNDLE

2 个答案:

答案 0 :(得分:1)

Apache Felix无法解析这些依赖项,因为它缺少iText所需的元数据。您需要使用一个版本的iText PDF,它是一个 OSGI包而不是一个普通的JAR,以便解决这些依赖关系。

如果iText开发人员不提供该库的OSGI版本,则必须自行转换。 This development articlethis 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>

Felix Bundlde Active