我在使用SoapUI Pro学习Groovy的初始阶段。所以我开始在Groovy Teststep编辑器中编写简单的脚本,如下所示
class Hello {
static void main(String args[]) {
log.info("Welcome");
}
}
当我通过点击" Run"执行此脚本时来自SoapUI Pro的按钮,它抛出以下错误信息。
错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:Script16.groovy:5:意外令牌:[@第5行,第30列.static void main(String args [])^ org.codehaus.groovy.syntax .SyntaxException:意外的令牌:[@第5行,第30栏,位于org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:139)org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java: 107)org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:236)org.codehaus.groovy.control.CompilationUnit $ 1.call(CompilationUnit.java:163)org.codehaus.groovy.control。 CompolUnit.applyToSourceUnits(CompilationUnit.java:839)org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:544)org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:520)at org .codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:497)at groovy.lang.GroovyClassLoader.doParseClass(Groo vyClassLoader.java:306)groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:287)at groovy.lang.GroovyShell.parseClass(GroovyShell.java:731)at groovy.lang.GroovyShell.parse(GroovyShell.java:743 )at groovy.lang.GroovyShell.parse(GroovyShell.java:770)at groovy.lang.GroovyShell.parse(GroovyShell.java:761)at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.compile(SoapUIGroovyScriptEngine。 java:148)at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:93)at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory $ SoapUIProGroovyScriptEngine.run(SourceFile:89)在com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:149)的com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel $ RunAction $ 1.run(GroovyScriptStepDesktopPanel.java:274) )java.util.conc上的java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) java.lang.Thread.run(未知来源)中的urrent.ThreadPoolExecutor $ Worker.run(未知来源)引起:Script16.groovy:5:30:意外令牌:[at org.codehaus.groovy.antlr.parser.GroovyRecognizer .parameterDeclaration(GroovyRecognizer.java:8413)org.codehaus.groovy.antlr.parser.GroovyRecognizer.parameterDeclarationList(GroovyRecognizer.java:7397)org.codehaus.groovy.antlr.parser.GroovyRecognizer.variableDefinitions(GroovyRecognizer.java:2311) )org.codehaus.groovy.antlr.parser.GroovyRecognizer.declaration(GroovyRecognizer.java:2140)org.codehaus.groovy.antlr.parser.GroovyRecognizer.classField(GroovyRecognizer.java:5936)org.codehaus.groovy。 orl.codehaus.groovy.antlr.parser.GroovyRecognizer.classDefinition(GroovyRecognizer.java:1942)org.codehaus.groovy.antlr.parser.GroovyRecognizer.typeDefinitionInternal( GroovyRecognizer.java:1822)org.codehaus.groovy.antlr.parser.GroovyRecognizer.statement(Groo vyRecognizer.java:1305)org.codehaus.groovy.antlr.parser.GroovyRecognizer.compilationUnit(GroovyRecognizer.java:757)at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:130)... 21更多1错误
我不确定我做了什么错误以及我必须做些什么来解决这个问题。
感谢
Karunagara Pandi
答案 0 :(得分:1)
Groovy与Java有99%的代码兼容性。因此,您可以在Groovy脚本中直接使用Java。
您的问题是您要声明方法main
。在SoapUI Groovy脚本步骤中,您不声明方法。你刚开始编写代码。有关其他信息,请参阅Groovy documentation。
所以你的脚本应该只是:
log.info("Welcome");
没有class
,没有static void main
,只有一个班轮!
答案 1 :(得分:0)
你的语法错误。
替换:
String args[]
使用:
String[] args
或简单地说:
args
更新(日志)
抛出MPE因为您没有日志字段的声明。尝试添加以下导入:
import groovy.util.logging.Slf4j
并注释@ Slf4j注释。另请参阅here。不知道日志记录如何与SoapUI完全一致。
答案 2 :(得分:0)
class Hello {
def log = this.log;
void main(String[] args) {
log.info("Welcome");
}
}
输出: 10月26日星期三12:22:35 EEST 2016:INFO:Welcome