Excel SOAPUI:无法解决类XSSF工作簿错误

Excel SOAPUI:无法解决类XSSF工作簿错误,excel,groovy,apache-poi,soapui,xssf,Excel,Groovy,Apache Poi,Soapui,Xssf,在SoapUI中使用ApachePOI时出现以下错误 无法解决类XSSF工作簿错误 我在SOAPUI中导入了POI,并在/bin/ext中删除了POI jar文件。我尝试了3.14版和3.15 beta版。(我已附上错误)。我有什么遗漏吗?任何帮助都将不胜感激 代码如下: import org.apache.poi.xssf.usermodel.* import org.apache.poi.xssf.usermodel.XSSFWorkbook; def fs = new FileInput

在SoapUI中使用
ApachePOI
时出现以下错误

无法解决类XSSF工作簿错误

我在SOAPUI中导入了POI,并在/bin/ext中删除了POI jar文件。我尝试了3.14版和3.15 beta版。(我已附上错误)。我有什么遗漏吗?任何帮助都将不胜感激

代码如下:

import org.apache.poi.xssf.usermodel.*
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

def fs = new FileInputStream        ("C:\\Users\\JDoe\\Desktop\\SOAP_Learn\\SOAP_Test_Data.xlsx")
def wb =  new XSSFWorkBook (fs)  //-->> gives error in this line
def ws = wb.getSheet("Sheet1")
def r = ws.getPhysicalNumberOfRows()

enter code here << Stack Trace >>
       org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script5.groovy: 14: unable to resolve class XSSFWorkBook @ line 14, column 11. def wb = new XSSFWorkBook (fs) ^ org.codehaus.groovy.syntax.SyntaxException: unable to resolve class XSSFWorkBook @ line 14, column 11. at org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError(ClassCodeVisitorSupport.java:146) at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:222) at org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:232) at org.codehaus.groovy.control.ResolveVisitor.transformConstructorCallExpression(ResolveVisitor.java:969) at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:646) at org.codehaus.groovy.control.ResolveVisitor.transformDeclarationExpression(ResolveVisitor.java:1010) at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:638) at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:139) at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163) at org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1240) at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:101) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:112) at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:50) at org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:166) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123) at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1055) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:50) at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1183) at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:141) at org.codehaus.groovy.control.CompilationUnit$10.call(CompilationUnit.java:632) at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:912) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:574) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:523) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:279) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258) at groovy.lang.GroovyShell.parseClass(GroovyShell.java:613) at groovy.lang.GroovyShell.parse(GroovyShell.java:625) at groovy.lang.GroovyShell.parse(GroovyShell.java:652) at groovy.lang.GroovyShell.parse(GroovyShell.java:643) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.compile(SoapUIGroovyScriptEngine.java:138) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:89) at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:141) at com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel$RunAction$1.run(GroovyScriptStepDesktopPanel.java:250) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1 error[![enter image description here][1]][1]
import org.apache.poi.xssf.usermodel*
导入org.apache.poi.xssf.usermodel.xssf工作簿;
def fs=new FileInputStream(“C:\\Users\\JDoe\\Desktop\\SOAP\u Learn\\SOAP\u Test\u Data.xlsx”)
def wb=new XSSFWorkBook(fs)//-->在此行中给出错误
def ws=wb.getSheet(“Sheet1”)
def r=ws.getPhysicalNumberOfRows()
在此处输入代码>
org.codehaus.groovy.control.multipleCompositionErrorsException:启动失败:Script5.groovy:14:无法解析XSSFWorkBook@14行第11列的类。def wb=new XSSFWorkBook(fs)^org.codehaus.groovy.syntax.SyntaxException:无法在第14行第11列解析类XSSFWorkBook。在org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError(ClassCodeVisitorSupport.java:146)在org.codehaus.groovy.control.ResolveVisitor.resolveOrFail(ResolveVisitor.java:222)在org.codehaus.groovy.control.ResolveVisitor.ResolveVisitor.transformConstructorCallExpression上(ResolveVisitor.java:969)位于org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:646)位于org.codehaus.groovy.control.ResolveVisitor.transformDeclarationExpression(ResolveVisitor.java:1010)位于org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:638)位于org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:139),位于org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40),位于org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35)在org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163)在org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1240)在org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)在org.codehaus.groovy.ast.ast.ClassCodeVisitorSupport.visitclasscodecodecontainer(ClassCodeVisitorSupport.java:101)在org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:112)在org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:50)在org.codehaus.groovy.control.resolvietVisitorstructorormethod(ResolveVisitor.java:166)在org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123)在org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1055)在org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:50)在org.codehaus.groovy.control.visitcass(ResolveVisitor.java:1183)在org.codehaus.groovy.control.ResolveVisitor.StartResolveResolveting(ResolveVisitor.java:141)在org.codehaus.groovy.control.CompilationUnit$10.call(CompilationUnit.java:632)在org.codehaus.groovy.control.CompilationUnit.applySourceUnits(compilationUnits.java:912)在org.codehaus.groovy.groovy.doPhaseOperation(CompilationUnit.java:574)位于org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:523)位于groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:279)位于groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258)位于groovy.lang.GroovyShell.GroovyShell.parse.parseClass(GroovyShell.java:613)(GroovyShell.java:625)在groovy.lang.GroovyShell.parse(GroovyShell.java:652)在groovy.lang.GroovyShell.parse(GroovyShell.java:643)在com.eviware.soapui.support.scripting.groovy.soapuigroovysscriptengine.compile(soapuigroovyscript.java:138)在com.eviware.soapui.soapui.support.scripting.groovy.soapuigroovysscriptengine.runcom.eviware.soapui.impl.wsdl.teststeps.wsdlgroovysscriptteststep.run(wsdlgroovysscriptteststep.java:141)com.eviware.soapui.impl.wsdl.panels.teststeps.groovysscriptsteptdesktoppanel$RunAction$1.run(groovysscriptsteptoppanel.java:250)java.util.concurrent.poolthreadexecutor.runWorker(未知源)在java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)在java.lang.Thread.run(未知源)处出现1个错误[![在此处输入图像描述][1][1]


将从ApachePOI下载的所有jar文件添加到soapui/bin/ext文件夹中,然后重新启动soapui

JAR添加到bin/ext中,为了节省时间,我添加了ApachePOI下载的所有JAR

 poi-3.14-xxxxxx.jar
 poi-examples-3.14-xxxxx.jar
 poi-excelant-3.14-xxxxx.jar
 poi-ooxml-3.14-xxxxxx.jar
 poi-ooxml-schemas-3.14-xxxxxx.jar
 poi-scratchpad-3.14-xxxxx.jar

 ooxml-lib/curvesapi-1.03.jar
 ooxml-lib/xmlbeans-2.6.0.jar
 lib/commons-codec-1.10.jar
 lib/commons-logging-1.2.jar
 lib/junit-4.12.jar
 lib/log4j-1.2.17.jar
使用以下代码将工作手册导入groovy

import org.apache.poi.ss.usermodel.*
import org.apache.poi.hssf.usermodel.*
import org.apache.poi.xssf.usermodel.*
import org.apache.poi.ss.util.*

def fs = new FileInputStream ("C:\\Users\\JDoe\\Desktop\\SOAP_Learn\\SOAP_Test_Data.xlsx") 

// Use this factory pattern to create/read workbook this is the wrong we are doing and if you find it out in the jarfiles there is no class XSSF
 Workbook wb = WorkbookFactory.create(fs); 
 def ws = wb.getSheet("Sheet1")
 def r = ws.getPhysicalNumberOfRows()
 log.info r 

//enjoy!!!
问题:不能像new XSSFWorkbook()那样直接实例化该类,我们必须使用factory Pattern对其进行初始化。 别忘了这花了我很多时间

将从ApachePOI下载的所有jar文件添加到soapui/bin/ext文件夹中,然后重新启动soapui

JAR添加到bin/ext中,为了节省时间,我添加了ApachePOI下载的所有JAR

 poi-3.14-xxxxxx.jar
 poi-examples-3.14-xxxxx.jar
 poi-excelant-3.14-xxxxx.jar
 poi-ooxml-3.14-xxxxxx.jar
 poi-ooxml-schemas-3.14-xxxxxx.jar
 poi-scratchpad-3.14-xxxxx.jar

 ooxml-lib/curvesapi-1.03.jar
 ooxml-lib/xmlbeans-2.6.0.jar
 lib/commons-codec-1.10.jar
 lib/commons-logging-1.2.jar
 lib/junit-4.12.jar
 lib/log4j-1.2.17.jar
使用以下代码将工作手册导入groovy

import org.apache.poi.ss.usermodel.*
import org.apache.poi.hssf.usermodel.*
import org.apache.poi.xssf.usermodel.*
import org.apache.poi.ss.util.*

def fs = new FileInputStream ("C:\\Users\\JDoe\\Desktop\\SOAP_Learn\\SOAP_Test_Data.xlsx") 

// Use this factory pattern to create/read workbook this is the wrong we are doing and if you find it out in the jarfiles there is no class XSSF
 Workbook wb = WorkbookFactory.create(fs); 
 def ws = wb.getSheet("Sheet1")
 def r = ws.getPhysicalNumberOfRows()
 log.info r 

//enjoy!!!
问题:不能像new XSSFWorkbook()那样直接实例化该类,我们必须使用factory Pattern对其进行初始化。 别忘了这花了我很多时间

您是否已经准备好了Yapi或免费版本,即soapui?以及哪个版本?您可以发布stacktrace而不是impage吗?还可以显示soapui_HOME/bin/ext目录中的文件列表?您是否删除了poi.jar所依赖的支持jar,如commons.jar和etcThank诸位!这是堆栈跟踪。@Suman我在这里看到了许多常用的文件我应该使用哪一个?你是readyapi还是免费版本,即soapui?以及哪个版本?你能发布stacktrace而不是impage吗?