2016-06-24 3 views
2

私はSoapUI and Groovyを初めて使用しています。 SOAPUIに以下のような簡単なグルーヴィーなスクリプトを実行しようとしているとき:groovy.lang.MissingMethodException:メソッドのシグネチャがありません:Script5.sai()可能な解決策:wait()、行のエラー:3

log.info "hello" 
sai s = new sai(log) 
s.name = "baba" 
s.pde() 
class sai 
{ 
    def log 
    def name 
    public sai(log) 
    { 
    this.log=log 
    } 

    public void pde() 
    { 
    log.info "sai"+name 
    } 
} 

をそれは次のエラーを与えている:

groovy.lang.MissingMethodException: No signature of method: Script5.sai() is applicable for argument types: (sai) values: [[email protected]] Possible solutions: wait(), wait(long), main([Ljava.lang.String;), run(), run(), any() error at line: 3

は、誰もがこの問題を解決するために私を助けてください。

+2

クラス名は大文字で始まる必要があります –

答えて

0

tim_yeatesが正しく言及されているので、クラス名はのキャプティブ文字で開始するのが標準的な方法です。

ここで修正& groovifiedスクリプトです:

log.info 'hello' 
//Just pass the data as map as show below 
def s = new Sai(log:log, name: 'baba') 
s.pde() 
class Sai { 
    def log 
    def name 
    //Since we are passing data as map, you do not have to explicity define constructor in the class unless something specific, so removed constructor. 
    def pde() { log.info "sai $name" } 
} 

が、それはそう単純ではないですか?

スクリプトから問題に来

enter image description here

:スクリプトを書いた

方法、私が推測する、おそらく、区別できない、場所にすべてを表示されます。それを動作させるためには

:から

変更ライン: sai s = new sai(log)

へ:def s = new sai(log)
そして、あなたのスクリプトは、ちょうど変更上記とあまりにも動作します。

これが役に立ちます。

+2

これは「標準的な練習」ではなく、groovyコンパイラ(javaとは異なります)に必要です。 –

+1

@NathanHughes、ありがとう、更新されます。しかし、ちょうど質問。彼女のコードはちょうど答え 'def s = new sai(log)'に言及された変更を使って作業しています。そのクラス名が必須の資格でなければならなかったのはどうでしたか?知ってうれしいです。 – Rao

+0

@kavitha、これを試す機会を得ましたか? – Rao

関連する問題