0

我正在从 2.1.0 版升级我的 Grails 应用程序。在此升级之前,应用程序运行良好。我下载并设置了新版本的 Grails(最初我尝试了 2.2.1 版,但今天尝试升级到 2.2.2)并在我的应用程序上进行了 Grails 升级。

由于升级我的应用程序不会启动,引用 DuplicateMappingException。

DuplicateMappingException: duplicate import: User refers to both com.mycompany.myapp.User and net.security.User (try using auto-import="false")

或者

DuplicateMappingException: duplicate import: Role refers to both net.security.Role and com.mycompany.myapp.Role (try using auto-import="false")

所以在我看来,GORM 出于某种原因认为它需要将这些net.security类映射到数据库。

Role并且User是我在 Grails 的 Shiro 安全插件中使用的域类。

我尝试autoImport false在我的域类中添加映射块。User这在使用或使用的系统的其他部分引起了问题Role。我没有进一步追求这一点,因为我确信这里不应该有冲突。

因此,我正在寻找是否有人知道可能导致此问题的原因,或者我可能会尝试解决一些问题。

仅供参考,我已经尝试对项目进行 Grails 清理。

谢谢

4

1 回答 1

0

好的,所以问题是这些net.security类不是我想的一些随机类。net.security是 Shiro OpenID 插件类的默认包。因此,在项目的早期,我们使用自己的包添加了UserRole,而不是使用 Shiro OpenID 插件附带的包。此时我们一定已经从目录中的grails-appsrc/groovy/net/security目录中删除了相应的类.grails/<version>/projects/<project>/plugins/shiro-openid-0.5。当我升级到 Grails 2.2.2 时,插件重新创建了这些文件,它们与我们项目中的文件冲突。

现在我已经手动删除了这些类文件,但也许有一种方法可以自动删除它们BuildConfig.groovy?不过,这是另一天的问题。

于 2013-05-26T02:22:00.170 回答