Apache FOP:添加Apache FOP Maven依赖项后的错误列表

问题描述

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

这是我当前在Maven中的依赖关系列表。所有项目运行都没有问题。但是@H_502_1@ 之后,添加了两个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)

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

@H_502_1@ PD。最后,仅需从命令行直接调用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一起运行。

解决方法

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

使用JDK-8可以。

当然,javax.xml软件包位于xml-apis的{​​{1}}依赖项和apache-fop中,但是以前也是如此。

但是无论如何,以下JDK-14使用dependency-exclusionJDK-14解决了我的问题:

Eclipse-2020-06