如何解决Apache FOP:添加Apache FOP Maven依赖项后的错误列表
现在,我正在研究一个调用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 标签?
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-exclusion
为JDK-14
解决了我的问题:
Eclipse-2020-06
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。