2011-07-12 12 views
1

私は午前中にハングアップしてしまった奇妙なエラーが発生しています。私はこのようになりますPersonクラスを持つのGrailsアプリケーションがあります。私のコントローラでGrails MissingPropertyException

class Person { 
     String id 
    Date lastUpdated 
    String note 
    String lastName 
    String firstName 
    String middleName 
    String facility 
    ... 
} 

を、私はモデルを得るために閉鎖を持っている:

def personDetail = { 
    Person person = new Person() 
    ... 
    List<Person> personSearchList = session.getAttribute("searchResults") 
    Person selectedSearchPerson = selectedSearchPersonList.find { it.id == selectedID } 
    person.firstName = selectedSearchPerson.firstName 
    person.lastName = selectedSearchPerson.lastName 
    person.middleName = selectedSearchPerson.middleName 
    person.facility = selectedSearchPerson.facility 
    ... 
    return [person:person] 
} 

さて、このコードは、昨日罰金働いていました。今朝は、しかし、任意の変更(私も古いSVNの提出に戻るしようとしている)私はグラムをクリックしたときに、私は次のエラーを取得していますせずに:detailControllerのGSPを表示するには、リンクを:

groovy.lang.MissingPropertyException: No such property: facility for class: org.icf.Person 
at org.bjc.icf.DetailController$_closure3.doCall(DetailController.groovy:33) 
at org.bjc.icf.DetailController$_closure3.doCall(DetailController.groovy) 
at java.lang.Thread.run(Thread.java:619) 

私が探して試してみましたこのエラーをオンラインで引き起こしている可能性のある解決策を立てますが、何かを見つけることができません。誰かが、私が突然、以前に動作していたコードでMissingPropertyExceptionsを取得している理由を知っていますか(はい、プロパティがまだクラスにあることを確認しました)。

答えて

9

実行してみてください。grails clean - 時にはインクリメンタルコンパイルが失敗することがあります。フルコンパイルを強制すると、このような奇妙な問題が発生することがよくあります。

+1

ありがとうBurt。私は数回前に(コンピュータの再起動を含めて)掃除を試みましたが、うまくいかなかったのです。何がうまくいくかは、コマンドラインから(STS IDEの代わりに)あなたの提案を実行していた。 –

+2

STSや他のIDEでプロジェクトを右クリックするだけでコンパイルされたクラスがクリアされますが、Grailsがrun-app用にコンパイルしたクラスと同じではありません。ですから、run-appがファンキーな動作をするときは 'grails clean'を実行し、IDEがファンキーなときはプロジェクトをきれいにします。 –