Groovy : 无法解析 class org.apache.poi.xssf.usermodel.XSSFSheet

Groovy : unable to resolve class org.apache.poi.xssf.usermodel.XSSFSheet

我在尝试使用 Soap UI 5.5 免费版和 poi bin 文件版本 4.1.1 时收到 "unable to resolve class org.apache.poi.xssf.usermodel.XSSFSheet" 错误。 我的 Soap 中有以下 jar 文件 UI directory/bin/ext

请帮助我读取xlsx文件数据。 下面是我的代码

    import java.io.File
    import java.io.IOException
    import java.text.SimpleDateFormat
    import java.util.Iterator
    import java.*
    import com.eviware.soapui.support.XmlHolder
    import groovy.*
    import groovy.json.*
    import groovy.json.JsonOutput
    import com.eviware.soapui.support.GroovyUtils
    import groovy.json.JsonSlurper
    import javax.xml.parsers.*
    import com.jayway.jsonpath.*
    import org.apache.poi.xssf.usermodel.XSSFCell
    import org.apache.poi.xssf.usermodel.XSSFRow
    import org.apache.poi.xssf.usermodel.XSSFSheet
    import org.apache.poi.xssf.usermodel.XSSFWorkbook
    import org.apache.poi.ss.util.*
    import org.apache.poi.ss.usermodel.*
    import org.apache.poi.ss.usermodel.Cell
    import org.apache.poi.ss.usermodel.Row


    log.info("start")


    FileInputStream file = new FileInputStream(new File("C://Unique.xlsx"));
    XSSFWorkbook workbook1 = new XSSFWorkbook(file)
    XSSFSheet readsheet1 = workbook1.getSheet("Data")
    Iterator rows = readsheet1.rowIterator();

好的,我模拟了你的错误。你有什么是依赖问题。如果您查看您获得的堆栈跟踪的下一行,它会告诉您哪里出了问题。它看起来像这样:

org.codehaus.groovy.control.MultipleCompilationErrorsException: 
startup failed: General error during class generation: 
java.lang.NoClassDefFoundError: Unable to load class
org.apache.poi.xssf.usermodel.XSSFWorkbook 
due to missing dependency org/apache/commons/collections4/ListValuedMap

看到 缺少依赖项 部分了吗?它可能捆绑在 /lib 下的 POI zip 中。添加它。

如果它没有与您下载的 POI 捆绑在一起,您可以在 https://mvnrepository.com you will find a place where you can download jar 上搜索 org/apache/commons/collections4。

将它添加到您的 [Soap UI 目录]/bin/ext,然后重新启动 SoapUI(它必须重新加载库)并重试。我得到:

java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile

现在您知道该怎么做了,直到所有缺失的依赖项/NoClassDefFoundError 都得到解决。这很乏味,但一旦完成,它应该会起作用。还要教自己阅读堆栈跟踪,它们可以为您提供很多信息。

这就是像 Maven 这样的依赖管理工具的原因,它们在后台为您完成所有工作,这在使用普通 Soap 时是不可能的UI。