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
- curvesapi-1.06
- ooxml-schemas-1.4
- ooxml-security-1.1
- poi-4.1.1
- poi-contrib-3.6-20091214
- poi-examples-4.1.1
- poi-excelant-4.1.1
- poi-ooxml-4.1.1
- poi-ooxml-schemas-4.1.1
- poi-scratchpad-4.1.1
- xmlbeans-3.1.0
请帮助我读取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。
我在尝试使用 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
- curvesapi-1.06
- ooxml-schemas-1.4
- ooxml-security-1.1
- poi-4.1.1
- poi-contrib-3.6-20091214
- poi-examples-4.1.1
- poi-excelant-4.1.1
- poi-ooxml-4.1.1
- poi-ooxml-schemas-4.1.1
- poi-scratchpad-4.1.1
- xmlbeans-3.1.0
请帮助我读取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。