【问题标题】:Groovy - Fillo - Provider for javax.xml.parsers.DocumentBuilderFactory cannot be foundGroovy - Fillo - 找不到 javax.xml.parsers.DocumentBuilderFactory 的提供程序
【发布时间】:2019-11-19 21:20:59
【问题描述】:

我在 Eclipse 中编写了一个有效的 Groovy 脚本,但是当从命令行调用时,它会抛出错误消息: 找不到 javax.xml.parsers.DocumentBuilderFactory 的提供程序

该错误是由解析 xlsx 文件的库 Fillo 引发的。问题似乎仍然很普遍,因为我发现很多页面都包含错误消息:

但无法解决问题或添加建议的解决方案。

我试图排除依赖:

@GrabExclude('xml-apis:xml-apis')

导入其他 jars 并检查我的 lib 文件夹,包括 {groovyinstallation}/lib 和 {usrhome}/.groovy

import groovy.util.logging.Log
import com.codoid.products.fillo.Connection
import com.codoid.products.fillo.Fillo
import com.codoid.products.fillo.Recordset
import groovy.transform.Field
import java.net.Proxy
import java.text.SimpleDateFormat
import java.util.logging.Logger
import groovy.xml.XmlUtil

@GrabExclude('xml-apis:xml-apis')
...
//Code Snippet where Error is thrown
Connection connection=fillo.getConnection(Path+"\\"+Filename.xlsx)

得到的错误信息如下:

Caught: javax.xml.parsers.FactoryConfigurationError: Provider for javax.xml.parsers.DocumentBuilderFactory cannot be found
javax.xml.parsers.FactoryConfigurationError: Provider for javax.xml.parsers.DocumentBuilderFactory cannot be found
        at org.apache.poi.ooxml.util.DocumentHelper.<clinit>(DocumentHelper.java:100)
        at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:395)
        at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.<init>(ContentTypeManager.java:104)
        at org.apache.poi.openxml4j.opc.internal.ZipContentTypeManager.<init>(ZipContentTypeManager.java:54)
        at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:260)
        at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:726)
        at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:304)
        at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:303)
        at com.codoid.products.fillo.Fillo.getWorkbook(Fillo.java:57)
        at com.codoid.products.fillo.Fillo.getConnection(Fillo.java:41)
        at com.codoid.products.fillo.Fillo$getConnection.call(Unknown Source)
        at xlsxParser.loadXLSX(ResultsAutomation.groovy:406)
        at xlsxParser$loadXLSX.call(Unknown Source)
        at ResultsAutomation.run(ResultsAutomation.groovy:624)

【问题讨论】:

  • 在黑暗中射击:您在命令行上使用的是 >= 9 的 JDK?
  • @cfrick 我当前的 Groovy 和 Java 版本:Groovy 版本:2.5.7 JVM:1.8.0_201 供应商:Oracle Corporation 操作系统:Windows 10

标签: groovy


【解决方案1】:

在 Jar Hell 中度过了令人沮丧的几个小时后发现了这个问题。 Fillo 正在构建他们的 jar,其中包括来自 javax 的标准库,还有一些其他来源,如 apache 和 w3。

这导致了不同实例的一些问题。在 fillo.jar 中删除这些库后,我能够从命令行正确运行我的脚本。

【讨论】:

    猜你喜欢
    • 2013-06-25
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 2021-12-15
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多