1

嗨,我有一个使用 myfaces 2.1.10 运行的 spring richfaces 项目,但我想更改为 Mojarra 2.1.19,但应用程序给了我错误:

SEVERE [javax.faces] (MSC service thread 1-4) Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory. Attempting to find backup.
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/projvehimerc]] (MSC service thread 1-4) StandardWrapper.Throwable: java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory. 

我想使用 jboss-jsf-api_2.1_spec,我的 pom.xml:

<properties>
    <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring.version>3.1.3.RELEASE</spring.version>
    <hibernate.version>4.1.8.Final</hibernate.version>
    <org.richfaces.bom.version>4.3.0.Final</org.richfaces.bom.version>
    <spring.security.version>3.1.3.RELEASE</spring.security.version>
</properties>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.richfaces</groupId>
            <artifactId>richfaces-bom</artifactId>
            <version>${org.richfaces.bom.version}</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.faces</groupId>
            <artifactId>jboss-jsf-api_2.1_spec</artifactId>
            <version>2.1.19.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.servlet</groupId>
            <artifactId>jboss-servlet-api_3.0_spec</artifactId>
            <version>1.0.2.Final</version>
        </dependency>
    </dependencies>

我的 web.xml,3.0 版:

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

<display-name>richfaces-application</display-name>
<!-- Listener para crear el Spring Container compartido por todos los 
Servlets y Filters (WebApplication Context)-->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath*:META-INF/spring/spring-master.xml
        WEB-INF/spring/spring-security.xml
    </param-value>
</context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<!-- For JSF -->
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

<!-- Jboss not use it bundle integrated JSF -->
    <context-param>
        <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
        <param-value>true</param-value>
    </context-param>

<!-- Spring JavaServiceFaces framework ApacheMyfaces  
    <listener>
        <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
    </listener>

-->
<!-- Spring Security, for all -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<!-- RichFaces Framework -->
    <!-- For control of skins -->
    <context-param>
        <param-name>org.richfaces.enableControlSkinning</param-name>
        <param-value>true</param-value>
    </context-param>

     <context-param>
         <param-name>org.richfaces.skin</param-name>
         <param-value>blueSky</param-value>
     </context-param>

<!-- Servlet for Dispatcher of flows -->
<servlet>
    <servlet-name>transportes</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/transportes-servlet.xml</param-value>
    </init-param>
     <load-on-startup>1</load-on-startup> 
</servlet>
<servlet-mapping>
        <servlet-name>transportes</servlet-name>
        <url-pattern>/flows/*</url-pattern>
</servlet-mapping>

<!-- Servlets for JSF-->
    <servlet>
        <servlet-name>faces</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>faces</servlet-name>
        <!--  <url-pattern>*.xhtml</url-pattern> -->
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <!-- Use JSF view templates saved as *.xhtml, for use with Facelets -->
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>

<!-- Set the PROJECT_STAGE to 'Development' to receive constructive error messages during development.
Change the PROJECT_STAGE to 'Production' when putting the application into production -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
<!-- Page That control SpringWeb -->
    <welcome-file-list>
        <welcome-file>index.jsf</welcome-file>
    </welcome-file-list>
</web-app>

缺少什么?,谢谢。

4

0 回答 0