目前我有一个Play! 2.1项目是作为前端接口的SBT多项目的子项目。表演! project使用SecureSocial进行典型身份验证。
我通常会先启动SBT控制台,在不同的终端上本地运行我的内部服务。最后,我在新窗口中执行play "project interface" "~run 9000"
命令,使用Play!启动界面子项目。问题是,在新的负载上(即使在干净的情况下),SecureSocial不会使用我的扩展服务和提供商,而是自行回归。
我将进行源代码更改和重新加载,然后SecureSocial将使用我自己的类,但突然开始使用两个相同类型抛出ClassCast
个异常,表明存在冲突的ClassLoaders。
有没有正确的方法来设置它,所以这不会发生?谢谢你的帮助!
答案 0 :(得分:0)
虽然不是一个真正的解决方案,但我在此期间开发了一种解决方法,我手动实例化我自己的扩展UserService
类并将当前的Application实例带入范围。我还编写了自己的提供程序和SecureAction
包装器,并将它们设计为使用自定义UserService
。这是很多额外的代码,但解决了这个问题。