![](/img/trans.png)
[英]grails 2.2.2 platform-core-plugin No signature of method event in domain model
[英]grails 2.2.2 service don't know domain model: “No signature of method”
我有一个名为“ listadmin”的grails插件,有一个域模型“ Liste”:
package listadmin
class Liste {
String internal_name
String public_name
Boolean edtiable = true
Boolean visible = true
static hasMany = [eintrage : ListenEintrag]
static constraints = {
internal_name(unique : true , blank : false);
}
String toString() {
"${public_name}"
}
}
我在同一模块(grails-plugin)中有一个名为“ SECO_ListenService”的服务:
package listadmin
class SECO_ListenService {
def getEntriesOfList(String intnalListName) {
def aList = Liste.findByInternal_name(intnalListName)
return aList
}
}
现在,我尝试从另一个名为“ institutionadmin”的模块(grails-plugin)中调用此服务。 SECO_ListenService应该返回inistitutionadmin中用于选择域模型的字符串列表:
package institutionadmin
import listadmin.SECO_ListenService
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 sECO_ListenService = new SECO_ListenService()
aList=sECO_ListenService.getEntriesOfList("einrichtung_type")
einrichtungs_type(inList: aList)
}
}
如果我尝试同时使用两个模块运行此应用程序。 我收到以下错误:
由MissingMethodException引起:方法没有签名:listadmin.Liste.methodMissing()适用于参数类型:()值:[]
服务类似乎不知道“ Liste”域模型。 但是我不知道错误在哪里。 我还尝试调用其他标准方法,例如“ findAll”,但没有成功。
有人知道我的错误可能在哪里吗?
为了在静态上下文中获得服务,您需要访问grailsApplication
spring bean。 Holders
可以做到这一点。 例:
class MyService {
List<String> getAvailable() {
return ['A','B','C']
}
}
class MyDomainClass {
String something
static constraints = {
something inList: getSomethingList()
}
static List<String> getSomethingList() {
def myService = Holders.grailsApplication.mainContext.getBean('myService')
return myService.getAvailable()
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.