【问题标题】:Apache FOP: List of errors after adding Apache FOP Maven dependencyApache FOP:添加 Apache FOP Maven 依赖项后的错误列表
【发布时间】:2020-11-30 16:16:54
【问题描述】:

现在我正在开发一个调用 SOAP Web 服务的 JDK-14 应用程序,在接收到 XML 结果之后,它必须调用一个方法来通过 Apache FOP 库生成 PDF 文档。请注意,我没有在这个项目中使用 module-info.java

这是我当前在 Maven 中的依赖项列表。所有项目都在正常运行。但是添加两个 Apache FOP 依赖项(见下文)后,就无法再编译和运行应用程序了。

<dependencies>
        <!-- Dependencies for XML marshaling and more -->
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>2.3.3</version>
        </dependency>
        <!-- Runtime -->
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.3</version>
            <scope>runtime</scope>
        </dependency>
        <!-- Dependencies for Web Service -->
        <dependency>
            <groupId>jakarta.xml.ws</groupId>
            <artifactId>jakarta.xml.ws-api</artifactId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <groupId>jakarta.jws</groupId>
            <artifactId>jakarta.jws-api</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>rt</artifactId>
            <version>2.3.3</version>
        </dependency>
        <!-- Dependencies for Apache PDF -->
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>xmlgraphics-commons</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>fop</artifactId>
            <version>2.5</version>
        </dependency>
        <!--Dependencies for QR Code-->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.4.0</version>
        </dependency>
</dependencies>

错误消息不同:

import javax.xml.namespace.QName;
The package javax.xml.namespace is accessible from more than one module: <unnamed>, java.xmlJava(8390063)

import javax.xml.transform.Result;
The package javax.xml.transform is accessible from more than one module: <unnamed>, java.xmlJava(8390063)

import javax.xml.transform.sax.SAXResult;
The package javax.xml.transform.sax is accessible from more than one module: <unnamed>, java.xmlJava(8390063)

import javax.xml.transform.stream.StreamSource;
The package javax.xml.transform.stream is accessible from more than one module: <unnamed>, java.xmlJava(8390063)

import javax.xml.parsers.DocumentBuilderFactory;
The package javax.xml.parsers is accessible from more than one module: <unnamed>, java.xmlJava(8390063)

我想知道如何处理这个问题。也许在冲突的特定依赖项中使用 exclusion 标记?

警察局。最后,只需从命令行直接调用 Apache FOP jar 即可生成 PDF 文档。

java -jar fop.jar -r -xml <xml_path> -xsl <xsl_path> -param name1 value1 -param name2 value2 ... myPDF.pdf

但我想知道 (1) 是否仍然可以通过代码进行配置。以及(2)为什么现在会发生这种情况。该项目在迁移到 JDK-14 之前使用 JDK-11 和 JDK-13 运行。

【问题讨论】:

    标签: java xml maven apache-fop java-14


    【解决方案1】:

    我不太确定为什么最近的 JDK 会出现这个问题。

    JDK-8,没关系。

    当然,javax.xml 包在apache-fopJDK-14xml-apis 依赖项中,但之前也是如此。

    但无论如何,下面的dependency-exclusion 使用Eclipse-2020-06 为我解决了JDK-14 下的问题:

    <!DOCTYPE xml>
    <project
            xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.stackoverflow</groupId>
        <artifactId>apache.fop.jdk14.exclude.xml-apis</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.target>14</maven.compiler.target>
            <maven.compiler.source>14</maven.compiler.source>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.xmlgraphics</groupId>
                <artifactId>fop</artifactId>
                <version>2.5</version>
                <exclusions><exclusion><groupId>xml-apis</groupId><artifactId>*</artifactId></exclusion></exclusions>
            </dependency>
        </dependencies>
    </project>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2013-09-09
      • 2016-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多