从GroovyShell脚本访问Grails域类

从GroovyShell脚本访问Grails域类,grails,groovy,Grails,Groovy,我试图使用来评估Grails应用程序中的一些代码片段,但我似乎无法访问我们的Grails域类。例如,当我尝试评估以下内容时: Eval.me("my.package.MyDomainClass.get(1)") groovy.lang.MissingPropertyException: No such property: my for class: Script1 我看到这样一个错误: Eval.me("my.package.MyDomainClass.get(1)") groovy.la

我试图使用来评估Grails应用程序中的一些代码片段,但我似乎无法访问我们的Grails域类。例如,当我尝试评估以下内容时:

Eval.me("my.package.MyDomainClass.get(1)")
groovy.lang.MissingPropertyException: No such property: my for class: Script1
我看到这样一个错误:

Eval.me("my.package.MyDomainClass.get(1)")
groovy.lang.MissingPropertyException: No such property: my for class: Script1
你有没有想过我该怎么做


谢谢。

我想出了如何让它工作的办法。默认情况下,
GroovyShell
实例在其自己的类加载器中清楚地计算脚本,因此您的Grails人工制品都不可用。有一个替代构造函数,您可以在其中传入另一个类加载器,因此这在Grails应用程序的上下文中实现了我所需要的功能(例如,在
Grails控制台中运行时):


这就是运行
grailsshell
后得到的GroovyShell吗?我指的是
GroovyShell
类-一个可以计算任意groovy代码的类:
Eval.me
()是一种方便的静态方法,用于实例化该类的实例并在其上调用
evaluate
。感谢您的分享!