0

SoapUI で Groovy スクリプトから Java クラスを呼び出そうとしています

私のJavaクラス

public class LogTest {
    public void sayHello (){
        System.out.println("Hello");
    }   
}

Groovy スクリプト

import LogTest;

new LogTest().sayHello()

LogTest.class を...SmartBear\SoapUI-4.6.1\bin\extパスに配置し、SoapUI を再起動します

しかし、まだSoapUIで次のエラーが発生しています

:ERROR:org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script5.groovy: 1: unable to resolve class LogTest
 @ line 1, column 1.
   import LogTest;
   ^
org.codehaus.groovy.syntax.SyntaxException: unable to resolve class LogTest
 @ line 1, column 1.
    at org.codehaus.groovy.ast.ClassCodeVisitorSupport.addError(ClassCodeVisitorSupport.java:148)
    at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1240)
    at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:148)
    at org.codehaus.groovy.control.CompilationUnit$8.call(CompilationUnit.java:601)
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:839)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:544)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:493)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306)
    at 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.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:149)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:239)
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:48)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:148)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:43)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:135)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

考えられる根本的な原因は何ですか

乾杯

4

2 に答える 2

0

この問題を解決できましたか? そうでない場合は、同じシナリオに遭遇しました。これが修正方法です。

次の情報を含む jar ファイル (HelloWorldTest.jar) がありました。

package helloworldtest;

public class HWT {

    public static String Testing() {
        return "Hello World!";
    }

}

ファイル名とパッケージ名が異なることに注意してください。Groovy にインポートするときは、必ずパッケージ名を使用してください。

私が使用した:

import helloworldtest.HWT;

log.info HWT.Testing();

結果は次のようになります。

Thu Mar 06 16:26:01 PST 2014:INFO:Hello World!
于 2014-03-07T00:26:22.067 に答える
0
  1. コードを含む jar ファイルをビルドします (LogTest)

  2. その jar ファイルを /bin/ext ディレクトリに置きます。

これにより、Groovy スクリプトからコードを呼び出すことができます。

于 2013-11-09T06:27:25.663 に答える