我目前正在尝试从JBOSS Weld AS7切换到Wildfly 8 Beta。我得到它编译,但在尝试加载页面本身时,我得到以下异常:
Caused by: java.lang.IllegalStateException: class org.jboss.weld.context.SerializableContextualFactory$PassivationCapableSerializableContextual is no valid conversation scoped bean
at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:100) [myfaces-extcdi-bundle-jsf20-1.0.5.jar:1.0.5]
at org.jboss.weld.context.PassivatingContextWrapper$AbstractPassivatingContextWrapper.get(PassivatingContextWrapper.java:70) [weld-core-impl-2.1.0.CR1.jar:2013-09-26 16:53]
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:81) [weld-core-impl-2.1.0.CR1.jar:2013-09-26 16:53]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78) [weld-core-impl-2.1.0.CR1.jar:2013-09-26 16:53]
at myprojectspace.project.OpenScenarioBean$Proxy$_$$_WeldClientProxy.getProjectList(Unknown Source) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_09]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_09]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09]
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363) [javax.el-3.0-b07.jar:3.0-b07]
导致此问题的类,即OpenScenarioBean
是主页的辅助bean,声明如下:
@Named
@ViewAccessScoped
public class OpenScenarioBean implements Serializable {
// ...
}
如果我删除ViewAccessScoped
并将其替换为例如javax.enterprise.context.ConversationScoped
。 12:26:36,103 WARN [org.jboss.weld.Bean] (MSC service thread 1-7) WELD-001529: An
InjectionTarget is created for a class
org.apache.myfaces.extensions.cdi.jsf2.impl.listener.request.CodiFacesContextFactory which
does not have any appropriate constructor.
网页将毫无例外地显示。
有谁知道如何解决这个问题?
我的猜测是:CODI尚未与Wildfly进行任何集成,因为在部署期间我还会收到一些警告,例如
ViewAccessScoped
但如果是这样的话,我想要像{{1}}这样的东西,我想我应该转而使用DeltaSpike并希望他们在与Wildfly的整合中更快? (但该项目尚处于初期阶段)。
答案 0 :(得分:1)
我对CODI支持不太确定,但现在应该有MyFaces support。这是Multi-JSF支持的一部分。如果使用随MyFaces支持提供的安装脚本进行安装,并将CODI添加为可能有效的模块,则可以使用它。我只是猜测,因为我对CODI知之甚少。
我确实找到了关于CODI支持问题的JIRA,但看起来它已经从JBoss AS 7中遗留下来了。
答案 1 :(得分:0)
您的设置似乎存在Classloading问题。