在webfragments中使用流程

时间:2015-04-28 12:37:17

标签: cdi jsf-2.2 flow-scope

我正在尝试构建一个包含包含流的webfragment的webapp。

我开始构建一个我想用作webfragment的webapp的独立版本。那是有效的。之后我把它转换成了这个结构:

flow-webfragment\src\main\java\javaclasses..

flow-webfragment\src\main\resources\META-INF\beans.xml
flow-webfragment\src\main\resources\META-INF\faces-config.xml
flow-webfragment\src\main\resources\META-INF\web-fragment.xml

flow-webfragment\src\main\resources\META-INF\resources\META-INF\context.xml
flow-webfragment\src\main\resources\META-INF\resources\META-INF\myflowdir
flow-webfragment\src\main\resources\META-INF\resources\META-INF\webfragment-start.xhtml

我对结构不确定..如果有更好的或惯例,请告诉我。

正确设置了webfragment,我的webapp会识别它。我可以去" webfragment-start.xhtml"页面,但是当我尝试输入我的流程时,我得到一个NullPointerException:

java.lang.NullPointerException
at com.sun.faces.flow.FlowCDIContext.flowEntered(FlowCDIContext.java:332)
at com.sun.faces.flow.FlowHandlerImpl.pushFlow(FlowHandlerImpl.java:385)
at com.sun.faces.flow.FlowHandlerImpl.transition(FlowHandlerImpl.java:280)
at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:239)
at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:182)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:132)

我认为CDI没有正确使用,因为在另一个我也使用JSF 2.2和Omnifaces的项目中,我收到了这条消息

org.omnifaces.ApplicationInitializer checkCDIAvailable

请参阅http://omnifaces.org/cdi/

我也遵循了how to install CDI in tomcat上的BalusC的指示,它作为独立的webapp工作,但不是作为webfragment。

我没有找到关于如何构建webfragment的好的和可理解的教程。如果你认识一个,欢迎你告诉我。

非常感谢每一位帮助!

亲切的问候, 米莎

1 个答案:

答案 0 :(得分:0)

我忘了添加

<Context>
<Resource name="BeanManager" 
    auth="Container"
    type="javax.enterprise.inject.spi.BeanManager"
    factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>

到context.xml。