我使用Grails 2.3.3作为已成功构建的应用程序。
我现在将Spring安全性合并到应用程序中,在插件中添加了一行:
compile ":spring-security-core:2.0-RC5"
因此,我收到与transactionManager
和sessionfactory
相关的GrailsContextLoader错误 - 这是错误:
错误| 2017-10-13 12:46:09,299 [localhost-startStop-1]错误context.GrailsContextLoader - 初始化应用程序时出错:创建名称为' transactionManagerPostProcessor'的bean出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为' transactionManager'的bean时出错:无法解析对bean' sessionFactory'的引用设置bean属性' sessionFactory&#39 ;;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为' sessionFactory'的init时出错::init方法的调用失败;嵌套异常是org.hibernate.MappingException:关联引用未映射的类:homevu1.PicturesNWShr 消息:创建名称为' transactionManagerPostProcessor'的bean时出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为' transactionManager'的bean时出错:无法解析对bean' sessionFactory'的引用设置bean属性' sessionFactory&#39 ;;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为' sessionFactory'的init时出错::init方法的调用失败;嵌套异常是org.hibernate.MappingException:关联引用未映射的类:homevu1.PicturesNWShr
PicturesNWShr是我的域之一,如果删除spring-security插件,编译它没有问题。
我已经扫描了一些相关的帖子,虽然我到目前为止还没找到一个有相同问题的帖子。但是有一些人建议修改项目根文件夹中的依赖项文件,以便从构建中强加或排除依赖项。
我欢迎一些建议?
以下是PicturesNWShr的域名定义:
package homevu1
import java.util.Date;
class PicturesNWShr {
static constraints = {
name()
filename(blank: true, nullable: true)
dateCreated()
caption(blank: true, nullable: true)
slotType(blank: true, nullable: true)
groupName(blank: true, nullable: true)
}
static mapping = {
datasource 'publish'
}
String name
String filename
String caption
Date dateCreated
VideoSlotTypeShr slotType
String groupName // link pictures together for multifile upload
// ideal for linking al images of a house together for EAs.
Date updateDate // The multiple file upload process - checks each instance update is complete
// before adding to vidSlot.
static belongsTo = [userBT: UserShr]
String toString() {
"${name}"
}
}
-Mike
答案 0 :(得分:0)
深入研究了有关此映射错误的Stackoverflow帖子存档 - 我已确定错误是什么。
为我的域提供两个独立的数据源,当我扩展UserShr是PicturesNWShr的外键时,它无法将其映射为SecUser,SecRole& SecUserSecRole位于不同的数据源中。
那说我现在不知道如何解决这个问题,因为现在我需要撤消' s2-quickstart对我的应用程序做了什么,并确保SecUser,SecRole& SecUserRole被放置在"发布'数据源在上面的域类定义中引用。
需要进一步探索Stackoverflow。
-Mike