我正在编写一个grails应用程序来显示来自数据库的信息。 数据库访问是由Spring服务(使用DAO,SQLJ脚本等)完成的,我想从我的grails控制器中使用它。
我已经添加了maven依赖项来导入这些外部Java类。
我的问题是:如何配置resources.groovy文件以便能够从我的控制器中引用我现有的spring bean?
这是我此刻尝试过的:
import com.BeanClass
// Place your Spring DSL code here
beans = {
springServiceName(BeanClass){
}
}
外部项目中的服务类:
package com;
...
@Repository("springServiceName")
@Service
public class BeanClass implements BeanInterface {
...
}
但是当我运行应用程序时出现以下错误:
[groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[groovyc] C:\epo\wIndigo\prs-web\grails-app\conf\spring\resources.groovy: 1: unable to resolve class com.BeanClass
您是否知道为何无法成功检索来源?
提前感谢您的帮助。
问候。
答案 0 :(得分:2)
我已经添加了maven依赖项来导入这些外部Java类。
你能告诉我们你是怎么做到的吗?您应该在dependencies
BuildConfig.groovy
部分添加类似内容
compile 'group-id:artifact-id:version'
例如,添加杰克逊库:
dependencies {
compile 'org.codehaus.jackson:jackson-mapper-asl:1.7.6'
}
您可以验证是否正在使用Maven构建,部署Grails应用程序等,或者您只是想从Maven仓库中检索依赖项?
如果是后者,您可以自定义它在repositories
的{{1}}部分中搜索的Maven存储库
例如
BuildConfig.groovy
答案 1 :(得分:0)
夫妻俩。
1。)您是否已将外部jar添加到grails应用程序的\ lib \文件夹中并重新启动应用程序。执行此操作后它应该可以正常工作。
2.。)在bean definiation中包含完整的类路径和名称,使用'com.path.to.class.Bean'而不仅仅是'Bean'。
同时... 强>
如果您的服务类中有任何@PersistanceContext,则不要指望grails注入EntityManager。你必须在resource.xml中做一些额外的工作来处理它。