当前位置: 首页 > 知识库问答 >
问题:

找不到javax.xml.parsers.DocumentBuilderFactory的groovy-fillo-provider

郎魁
2023-03-14

我在eclipse中编写了一个工作的Groovy脚本,但当从命令行调用时,它会抛出错误消息:Provider for javax.xml.parsers.DocumentBuilderFactory不能找到

错误是由Fillo抛出的,Fillo是一个用于解析xlsx文件的库。问题似乎仍然是一般的,因为我发现了很多包含错误消息的页面:

  • 在Java/Maven中处理“Xerces地狱”?
  • 处理依赖项解析的Groovy Grape
  • 找不到javax.xml.parsers.DocumentBuilderFactory的提供程序

但未能解决问题或采纳建议的解决办法。

我试图排除依赖项:

@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)

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个答案

闻人仲渊
2023-03-14

在地狱的罐子里受挫了几个小时后发现了问题。Fillo正在构建他们的jar,包括来自javax的标准库,还有一些其他来源,如apache和W3。

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

 类似资料:
  • 在更新了android studio和gradle之后,我再也不能编译(在发布模式下)我的应用程序了。当我尝试生成APK时,我收到以下错误: 找不到org.codehaus.groovy:groovy-all:2.4.12。在以下位置搜索:文件:/用户/antonioleva/Library/Android/sdk/Explas/m2repository/org/codehaus/groovy/g

  • 我使用从获取值。我需要做记录, 我尝试使用以下代码: 但是当在中的

  • 当我试图通过liquibase命令行启动changelog.groovy时,它告诉我 我正在执行下一个操作: 我的LiquiBase.Properties是: driver=org.postgresql.driver classpath=c:\users\andrii\org.postgresql.driver.jar;c:\users\andrii\liquibase-3.5.1-bin\lib

  • 目前,我有一个“包罗万象”的jenkinsfile,其中包含各种函数。为了在其他jenkinsfile中重用这些函数,我想将它们放在单独的groovy脚本中,并从jenkinsfile中加载它们。 scmHandler。groovy: 在jenkinsfile中,我执行以下操作: <代码>。。。def scmHandler=负载(“测试/scmHandler.groovy”)scmHandler。

  • 我刚刚安装了甲骨文快递,创建了一个具有所有权限的新用户。我可以从 SQL 开发人员连接到我的 实例,因此我知道它正在运行。 Groovy控制台,我已经将< code>ojdbc6.jar添加到类路径中,现在正在尝试这样做... 我得到SQLException"没有找到合适的驱动程序为jdbc: oracle:瘦:@//localhost:1521/xe"。 对于连接字符串,我还尝试了< code

  • 经过一些谷歌搜索,我没有找到什么地方,决定玩一下,发现如果我执行所有测试,它会运行良好,即使当我改变类名以匹配文件名时,它也会工作。是否有一种方法可以配置Eclipse/JUnit,使其能够在与文件名不匹配的groovy类上运行测试? HelloWorld.groovy: