【发布时间】:2013-12-28 09:52:07
【问题描述】:
我正在使用 Grails 2.2.4 构建插件。该插件是一个访问管理器,需要访问一些数据源(多个)。正如 Grails 手册在 Providing Basic Artefacts 中指定的那样,DataSource.groovy 没有与插件捆绑在一起。
有没有办法将插件 DataSource.groovy 文件中定义的数据源“复制”到使用该插件的应用程序的 DataSource.groovy 文件中?
我真的不想在每个使用插件的应用程序上手动定义插件数据源。
============
完整的堆栈跟踪(在 cmets 中请求)
2013-12-11 11:39:33,055 ERROR org.codehaus.groovy.grails.web.context.GrailsConte
xtLoader - Error initializing the application: groovy.lang.MissingMethodExceptio
n: No signature of method: portal.Aplicacao.methodMissing() is applicable for ar
gument types: () values: []
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMetho
dException: No signature of method: portal.Aplicacao.methodMissing() is applicab
le for argument types: () values: []
at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.
java:308)
at grails.util.Environment.executeForEnvironment(Environment.java:301)
at grails.util.Environment.executeForCurrentEnvironment(Environment.java
:277)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: groovy.lang.MissingMethodException: No signature of method: portal.Ap
licacao.methodMissing() is applicable for argument types: () values: []
at portal.PortalService.criaAplicacaoNoPortal(PortalService.groovy:233)
at BootStrap$_closure1.doCall(BootStrap.groovy:16)
... 8 more
【问题讨论】:
-
嗯...你是如何运行这段代码的?您是在运行插件还是将其包含在应用程序中?
-
在应用程序中包含插件。当应用程序运行 BootStrap 时异常跳出,所以我认为平台核心插件还没有调用我的插件,对吗?
-
嗯,我不这么认为,几周前我做了同样的事情,在应用程序 BootStrap 中使用插件实体,它工作正常。我不记得有这个确切的问题,但我记得必须用
PluginEntity.withTransaction { /* code using plugin entities here */ }包围代码。 -
我的 BootStrap 调用插件中定义的服务,该服务是使用实体的服务。所以没有办法调用 withTransaction 其他实体员工也没有办法做到这一点
-
使用 grails 控制台配置可以工作,但是使用 run-app 配置没有加载(我使用了很多 printlns 来发现这一点)。好吧,最后,我发现其他插件搞砸了应用程序的启动。现在应用程序正在运行。感谢您的支持。
标签: grails grails-plugin