带有在EAR文件中打包的JSF流的WELD-001303 - WELD-001303:没有用于作用域类型javax.faces.flow.FlowScoped的活动上下文

时间:2015-04-21 22:57:49

标签: jsf glassfish wildfly java-ee-7 glassfish-4.1

使用JSF Flow将WAR文件转换为EAR文件。 WAR文件结构是:

booking/booking-flow.xml
booking/booking.xhtml
booking/confirm.xhtml
booking/print.xhtml
booking/showtimes.xhtml
WEB-INF/classes/org/javaee7/movieplex7/booking/Booking.class
WEB-INF/faces-config.xml
WEB-INF/template.xhtml
WEB-INF/web.xml

faces-config.xml是:

<faces-config version="2.2"
          xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
</faces-config>

web.xml是:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>
<context-param>
    <param-name>javax.faces.CLIENT_WINDOW_MODE</param-name>
    <param-value>url</param-value>
</context-param>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

booking-flow.xml是:

<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">

<flow-definition id="booking">
    <flow-return id="goHome">
        <from-outcome>/index</from-outcome>
    </flow-return>
</flow-definition>

</faces-config>

JSF Flow在打包为WAR文件时工作正常。但它给出了以下错误:

org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.faces.flow.FlowScoped

当它在EAR文件中打包为WAR文件时。 EAR结构是:

booking-1.0-SNAPSHOT.war
./lib
./lib/contracts-1.0-SNAPSHOT.jar

booking-1.0-SNAPSHOT.war结构是:

booking/booking-flow.xml
booking/booking.xhtml
booking/confirm.xhtml
booking/print.xhtml
booking/showtimes.xhtml
WEB-INF/beans.xml
WEB-INF/classes/org/javaee7/movieplex7/booking/Booking.class
WEB-INF/classes/org/javaee7/movieplex7/booking/MainPage.class
WEB-INF/faces-config.xml
WEB-INF/web.xml
需要

MainPage类才能从REST端点检索结果。资源库契约存储在lib目录中。

在GlassFish 4.1上部署应用程序。

知道为什么这个在独立的WAR文件中工作但在打包到EAR文件时没有?

1 个答案:

答案 0 :(得分:-1)

你在哪里部署?升级AS7.1.1以使用JSF2.2时,https://developer.jboss.org/thread/203257很有帮助。他们指出FlowScoped不适用于AS7.1.1(以及可能的其他功能)