イベントごとに platform-core-1.0 rc5 Plugin をサービスに試してみました。ここで、grails-plugin "listadmin" にサービスを記述します。
package listadmin
class SECO_ListenService {
@grails.events.Listener(topic='getEntriesOfList', namespace='listadmin')
def getEntriesOfList(String intnalListName) {
println "SECO_ListenService"
def Liste aList = Liste.findByInternal_name(intnalListName)
return aList.eintrage.toList()
}
}
このサービスは、「institutionadmin」と呼ばれる別の grails プラグインのドロップダウン リストを返す必要があります。このサービスのリストをドメイン モデルのドロップダウンに使用したいと考えています。私は動的な足場を使用していることに言及する必要があります。ここで、ドメイン モデルでこのイベントを呼び出そうとします。
package institutionadmin
import org.springframework.dao.DataIntegrityViolationException
class Einrichtung {
Long einrichtungs_type
Long type_of_conzept
int anzahl_gruppen
int anzahl_kinder_pro_Gruppe
String offnungszeiten
static hasMany = [rooms : Raum]
static constraints = {
def aList = []
def reply = event(for:"listadmin", topic:"getEntriesOfList", data:"einrichtung_type").waitFor()
aList = reply.value.toList()
einrichtungs_type(inList: aList)
}
}
このアプリケーションを実行しようとすると、次のエラーが発生します。
MissingMethodException が原因: メソッドのシグネチャがありません: 機関管理者.Einrichtung.event() は引数の型に適用できます: (java.util.LinkedHashMap) 値: [[for:listadmin, topic:testEventBus]] 可能な解決策: ident(), every ()、every(groovy.lang.Closure)、count()、get(java.io.Serializable)、print(java.lang.Object)
コントローラーでこのイベントを呼び出すと、すべて問題なく、このプラグインのドキュメントには、ドメインモデルとサービスでもイベントを呼び出すことができると記載されています...このエラーメソッドは、クラスがイベントメソッドを知らないことを教えてくれます。
他に何か設定する必要がありますか?
イベントを別の方法で呼び出す必要がありますか、それとも私の間違いはどこですか?
このモジュールを使用した経験のある人はいますか?