Groovy-Fillo-找不到javax.xml.parsers.DocumentBuilderFactory的提供程序

时间:2019-07-10 09:20:38

标签: groovy

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

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

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

我试图排除依赖项:

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

导入其他jar并检查我的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)

错误消息“ get”如下:

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)

1 个答案:

答案 0 :(得分:0)

在Jar Hell经历了几个令人沮丧的小时后才发现问题。 Fillo正在构建其jar,其中包括来自javax的标准库以及其他一些源,如apache和w3。

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