gpt4 book ai didi

java - Apache FOP : List of errors after adding Apache FOP Maven dependency

转载 作者:行者123 更新时间:2023-12-05 06:13:23 26 4
gpt4 key购买 nike

现在我正在开发一个调用 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 运行。

最佳答案

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

使用JDK-8,没问题。

当然,javax.xml包在apache-fopxml-apis依赖中,在JDK- 14,但以前也是如此。

但无论如何,以下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>

关于java - Apache FOP : List of errors after adding Apache FOP Maven dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63350707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com