我们目前正在使用用于JSF支持的JavaEE 3.2.5将一个相当大的项目从JoinFaces (野生蝇)迁移到SpringBoot2.0.5。不幸的是,在启动服务器时,我们总是收到以下消息:
范围'view‘对于当前线程是不活动的;如果您打算从单个实例引用该bean,请考虑为它定义一个作用域代理;嵌套的例外是java.lang.IllegalStateException: No FacesContext。
有问题的UI是一个附加了javax.faces.view.ViewScoped注释的Spring组件(就像连接面中的类StarterMBean -maven-jar-示例)。
有什么特别的东西,我们必须小心,例如,禁止依赖,特殊配置等?
我们感谢每一个提示!
发布于 2018-10-13 22:07:42
您有一个单例/应用程序作用域bean,它直接或间接依赖于视图作用域bean。这迫使BeanFactory在应用程序启动时构造视图作用域bean,但是视图作用域bean只能在当前处理JSF请求的线程中使用。
解决这个问题有多种方法:
@ViewScoped更改为@Scope(scopeName = "view", proxyMode = ScopedProxyMode.TARGET_CLASS)ObjectProvider<>,以便获得一个作用域代理。
有关这个问题的更多信息可以在这里找到:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-scopes-other-injection
https://stackoverflow.com/questions/52550747
复制相似问题