我试图用来GroovyShell评估Grails应用程序中的一些代码片段,但我似乎无法访问我们的Grails域类.例如,当我尝试评估这样的事情时:
Eval.me("my.package.MyDomainClass.get(1)")
Run Code Online (Sandbox Code Playgroud)
我看到这样的错误:
groovy.lang.MissingPropertyException: No such property: my for class: Script1
Run Code Online (Sandbox Code Playgroud)
有关如何让它工作的任何想法?
谢谢.
我想出了如何使这个工作.默认情况下,GroovyShell实例会在其自己的类加载器中清楚地评估脚本,因此您的Grails工件都不可用.还有一个替代构造函数,您可以在其中传入另一个类加载器,因此这在Grails应用程序的上下文中执行我需要的操作(grails console例如,在内部运行时):
def shell = new GroovyShell(this.class.classLoader)
shell.evaluate("my.package.MyDomainClass.get(1)")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |