我想使用groovy脚本将soap请求的响应写入xlsx文件

时间:2017-04-21 07:32:55

标签: java groovy soapui

我正在尝试使用groovy脚本向本地xlsx添加soap请求响应。我的代码产生错误,我不确定导致错误的原因。

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;

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;
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)

import jxl.*;

import com.eviware.soapui.support.XmlHolder;

import jxl.write.*;


// create an excel workbook
XSSFWorkbook workbook1= new XSSFWorkbook("C:\\Users\\arsharma1\\Desktop\\soapui\\OutputData.xlsx");

// create a sheet in the workbook
XSSFSheet sheet1 = workbook1.createSheet("Report Worksheet", 0);

// Get the data to be added to the report

def holder = groovyUtils.getXmlHolder("getstudentbyid#Response")

def response = context.expand( '${getstudentbyid#Response#declare namespace ns2=\'http://org.stu.com/\'; //ns2:getStudentByIdResponse[1]/return[1]/result[1]}' )




// create a label 
Label label = new Label(0, 0, Response);
log.info response

// Add the label into the sheet
sheet1.addCell(label); 
workbook1.write();
workbook1.close();


跟踪是:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script4.groovy: 37: 
****unable to resolve class Label @ line 37****, column 7. Label label = new Label(0, 0, Response); ^
 org.codehaus.groovy.syntax.SyntaxException: unable to resolve class Label @ line 37, column 7. 
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.transformVariableExpression(ResolveVisitor.java:866) 
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:634) 
at org.codehaus.groovy.control.ResolveVisitor.transformDeclarationExpression(ResolveVisitor.java:1003) 
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.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:79) 
at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:138) 
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) Script4.groovy: 
37: unable to resolve class Label @ line 37, column 15. Label label = new Label(0, 0, Response); 
^ org.codehaus.groovy.syntax.SyntaxException: unable to resolve class Label @ line 37, column 15. 
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.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:79) 
at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:138) 
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) 2 errors

0 个答案:

没有答案