MyFaces CODI和Wildfly还没有一起使用?

时间:2013-12-11 11:33:12

标签: java java-ee myfaces wildfly

我目前正在尝试从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.ConversationScoped12: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的整合中更快? (但该项目尚处于初期阶段)。

2 个答案:

答案 0 :(得分:1)

我对CODI支持不太确定,但现在应该有MyFaces support。这是Multi-JSF支持的一部分。如果使用随MyFaces支持提供的安装脚本进行安装,并将CODI添加为可能有效的模块,则可以使用它。我只是猜测,因为我对CODI知之甚少。

我确实找到了关于CODI支持问题的JIRA,但看起来它已经从JBoss AS 7中遗留下来了。

答案 1 :(得分:0)

您的设置似乎存在Classloading问题。