在WildFly上重新部署后,CDI无法在@Requestscoped REST服务中将@Singleton设置为@Provider

时间:2014-05-13 13:40:41

标签: java rest ejb cdi wildfly

我有AuthenticationFilter并且它注入了用@Singleton注释的UserController。当我第一次部署我的应用程序时 - 一切都很好,但是当我重新部署应用程序然后我尝试从任何REST服务中获取某些内容时 - 通常我会收到:

Can not set app.auth.UserController field
 app.web.rest.auth.AuthenticationFilter.userController to 
app.auth.UserController$Proxy$_$$_Weld$EnterpriseProxy$

即使我杀死服务器并重新启动它,问题仍然存在。但经过几次重启后,问题终于消失了。

有人知道可能导致该错误的原因吗?

1 个答案:

答案 0 :(得分:0)

我也遇到过这个问题。随着每次部署,我会得到注入(EJB)element => $(element).text() 甚至(CDI)@Singleton的随机失败。 我的问题是我确实拥有ApplicationScoped。不知怎的,没有beans.xml项目没有正确初始化。

当我添加(一个完全空的)beans.xml时,它已被解决。希望它有所帮助。