我试图将Grails项目用作插件,以使我的域类基本上位于插件中,然后在多个Grails项目中使用它们。
我已经做到了:
grails建立应用程式网页
grails create-app插件
在两个项目的根目录中创建一个settings.gradle并使用include'plugin','web'
然后,我在插件中添加了spring安全性,并使用s2-quickstart创建了一个用户和一个角色域类,并在Bootstrap.groovy中添加了一些默认用户。
仅启动插件项目不会显示任何问题。
现在,我将插件添加为Web项目的依赖项:compile(':plugin')这样,我可以从Web项目内部的插件访问域类,可以很好地编译。我将spring config添加到application.groovy中,现在正尝试使用Web项目中插件中的域类。
试试这个,但是我的项目不能正确启动,它告诉我:
java.lang.IllegalStateException: Either class [htcommon.HtRole] is not a domain class or GORM has not been initialized correctly or has already been shutdown. If you are unit testing your entities using the mocking APIs
我的代码尝试执行新的HtRole(...)。save()
似乎插件无法将域类识别为GORM类。
域未被识别为GORM类的问题是由于其中提供了构造函数。这些构造函数是从生成的s2-quickstart
,但应将其删除(这是spring-security-core中的错误)。我删除了构造函数,并在其中一个地方使用了地图样式默认构造函数。然后,我修复了您必须获得当前用户的呼叫。
修复的源代码在GitHub上的此存储库中(patch-1分支正在运行,master是OP的原始原始代码)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句