Jsf 将RichFaces添加到现有JBoss Seam应用程序

Jsf 将RichFaces添加到现有JBoss Seam应用程序,jsf,richfaces,myfaces,Jsf,Richfaces,Myfaces,给定一个使用Jboss seam构建的web应用程序,其中包含以下详细信息: dynamic web module: 2.3 Java : 1.5 Javascript: 1.0 Tomcat: 5.0 activation.jar commons-beanutils-1.7.0.jar commons-codec-1.3.jar commons-digester-1.6.jar commons-el-1.0.jar commons-fil

给定一个使用Jboss seam构建的web应用程序,其中包含以下详细信息:

 dynamic web module: 2.3
 Java : 1.5
 Javascript: 1.0
 Tomcat: 5.0
    activation.jar
    commons-beanutils-1.7.0.jar
    commons-codec-1.3.jar
    commons-digester-1.6.jar
    commons-el-1.0.jar
    commons-fileupload-1.0.jar
    commons-lang-2.1.jar
    commons-logging-1.0.4.jar
    jstl-1.1.0.jar
    jxl.jar
    log4j-1.2.8.jar
    myfaces-api-1.1.5.jar
    myfaces-impl-1.1.5.jar
    standard.jar
    tomahawk-1.1.3.jar
查看了RichFaces及其提供的功能后,我想将其添加到应用程序中,并尝试(但失败)通过创建一个新的应用程序来实现此目的,该应用程序具有:

 dynamic web module: 2.5
 Java: 1.5
 Javascript: 1.0
 Tomcat : 6.0
根据我在网上收集的信息,我可以满足Richfaces库的要求,也可以部署现有的应用程序,我在新项目中添加了以下库:

    activation.jar
    common-annotations.jar
    commons-beanutils-1.7.0.jar
    commons-codec-1.3.jar
    commons-collections-3.2.jar
    commons-digester-1.8.jar
    commons-discovery-0.4.jar
    commons-el-1.0.jar
    commons-fileupload-1.0.jar
    commons-lang-2.1.jar
    commons-logging-1.1.1.jar
    jsf-api.jar
    jsf-impl.jar
    jsf-tlds.jar
    jstl.jar
    jxl.jar
    log4j-1.2.8.jar
    myfaces-api-1.2.9.jar
    myfaces-impl-1.2.9.jar
    richfaces-api-3.3.3.Final.jar
    richfaces-impl-3.3.3.Final.jar
    richfaces-ui-3.3.3.Final.jar
    standard.jar
    tomahawk-1.1.3.jar
我向web.xml添加了所需的richfaces标记。我可以部署和运行该应用程序,并且可以看到richfaces皮肤应用于页面上的所有控件(bluesky),但很明显,设置有问题。链接重定向似乎不起作用(例如从登录屏幕到主页…等),调用backbean…等时出现空异常问题。据我所知,库冲突可能是原因,但我保留了上述内容,因为删除myfaces或jsf JAR将不允许部署应用程序

我的问题是:混合使用RichFaces和MyFaces是一个坏主意吗(或者确实不应该这么做?)。我添加上述库的主要原因是为了能够运行我们拥有的应用程序,但也可以向其中添加RichFaces,如果有人能告诉我上面不必要的(冲突的)库,以及我应该遵循的正确路径,以便将RichFaces添加到这个seam应用程序中,我将不胜感激

更新:

正如所建议的,JSF和MyFaces库是冲突的,因此我试图删除其中一个,保留另一个。下面是我在删除JSF库
JSF-impl.jar时遇到的错误
jsf-tlds.jar
jsf api.jar
并保留myfaces库:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/sun/faces/taglib/jsf_core/ViewTag

Caused by:
java.lang.ClassNotFoundException - com.sun.faces.taglib.jsf_core.ViewTag


- Stack Trace
javax.faces.FacesException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/sun/faces/taglib/jsf_core/ViewTag
    at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:347)
    at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:486)
从我所看到的,我可以看出错误来自如下标签:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
[2011-11-02 15:16:50,775] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more
[2011-11-02 16:10:59,260] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more
多汁的部分是严重:错误listenerStart

下面是我使用的web.xml文件:

web.xml

 <?xml version="1.0"?>
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>blueSky</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.CONTROL_SKINNING</param-name>
    <param-value>enable</param-value>
</context-param>
<filter>
    <display-name>RichFaces Filter</display-name>
    <filter-name>richfaces</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
    <filter-name>richfaces</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-  
  class>
    <init-param>
        <param-name>maxFileSize</param-name>
        <param-value>20m</param-value>
    </init-param>
</filter>
<!-- extension mapping for adding <script/>, <link/>, and other resource 
    tags to JSF-pages -->
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
  javax.faces.webapp.FacesServlet 
        entry -->
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>

</context-param>
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener</listener-
  class>
</listener>
<listener>
    <listener-class>testProj.SessionExpireHandler</listener-class>
</listener>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<filter>
    <filter-name>Faces Servlet</filter-name>
    <filter-class>testProj.SessionHandler</filter-class>
</filter>
<filter-mapping>
    <filter-name>Faces Servlet</filter-name>
    <url-pattern>*.faces</url-pattern>
</filter-mapping>
<!-- Welcome files -->
<welcome-file-list>
    <welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>
<session-config>
    <session-timeout>60</session-timeout>

</session-config>

 </web-app>
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener
    </listener-class>
</listener>
我也删除了

<!-- Listener, that does all the startup work (configuration, init). -->
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
更新3: 将myfaces降级为
myfaces Core 2.0.9
,例外情况如下所示:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
[2011-11-02 15:16:50,775] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more
[2011-11-02 16:10:59,260] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more
请注意,这是否值得一提,但tomahawk和myfaces中都存在以下库:

##tomahawk#
commons-logging-1.1.1.jar
commons-beanutils-1.7.0.jar
commons-codec-1.3.jar
commons-collections-3.2.1.jar
commons-digester-1.6.jar

#myfaces 2.0.9
commons-beanutils-1.8.3.jar
commons-codec-1.3.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-logging-1.1.1.jar
我用的是战斧附带的

在线研究上述异常与会话有关,其中页面提交包含不再存在的服务器端视图状态的id。这是由于web.xml中的错误配置造成的吗?请注意,我正在执行以下会话处理:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
[2011-11-02 15:16:50,775] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more
[2011-11-02 16:10:59,260] ERROR: org.ajax4jsf.webapp.BaseXMLFilter - Exception in the filter chain
javax.servlet.ServletException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.dbschenker.util.SessionHandler.doFilter(SessionHandler.java:34)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: /jsp/login.facesNo saved view state could be found for the view identifier: /jsp/login.faces
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
    ... 24 more
web.xml:

  <listener>
    <listener-class>testProj.SessionExpireHandler</listener-class>
</listener>
<filter>
    <filter-name>Faces Servlet</filter-name>
    <filter-class>com.dbschenker.util.SessionHandler</filter-class>
</filter>
<filter-mapping>
    <filter-name>Faces Servlet</filter-name>
    <url-pattern>*.faces</url-pattern>
</filter-mapping>

我不清楚为什么会抛出异常

您正在混合JSF实现。这些资料来自:

(我只是从未见过
jsf tlds.jar
,它们似乎起源于其他地方,它的
/META-INF/MANIFEST.MF
文件说了些什么?)

这些资料来自:

这是不允许的。他们只会互相冲突。你应该选择并使用其中一个

另见:

更新

根据您的更新,MyFaces出现以下异常:

java.lang.ClassNotFoundException-com.sun.faces.taglib.jsf_core.ViewTag

表明您仍然在类路径中的某个位置保留Mojarra TLD文件。要么打包在一个JAR中(通常是
jsf impl.JAR
,但是
jsf tlds.JAR
非常可疑,我真的很好奇它是从哪里来的,它们包含什么),要么是松散的
.tld
文件。换句话说,使用Mojarra和MyFaces的混合实现,运行时类路径仍然是脏的。清理
Webapp/WEB-INF/lib
Webapp/WEB-INF/classes
Tomcat/lib
JRE/lib
,等等

以下是Mojarra的信息

信息:已为此上下文配置了侦听器“com.sun.faces.config.ConfigureListener”。已忽略重复的定义

这可能是Tomcat中的一个bug(您使用的是哪个版本?6.0.18中修复了一个类似的bug),也可能是您在
web.xml
中不必要地重复了它作为
。无论您使用的是MyFaces还是Mojarra,它都应该已经由任何与JSP 2.0兼容的容器(如Tomcat 5.5及更新版本)上的TLD文件自动初始化

Mojarra出现以下错误:

严重:listenerStart错误

可能是因为您的
web.xml
中有一个MyFaces特定的侦听器:

 <?xml version="1.0"?>
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>blueSky</param-value>
</context-param>
<context-param>
    <param-name>org.richfaces.CONTROL_SKINNING</param-name>
    <param-value>enable</param-value>
</context-param>
<filter>
    <display-name>RichFaces Filter</display-name>
    <filter-name>richfaces</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
    <filter-name>richfaces</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-  
  class>
    <init-param>
        <param-name>maxFileSize</param-name>
        <param-value>20m</param-value>
    </init-param>
</filter>
<!-- extension mapping for adding <script/>, <link/>, and other resource 
    tags to JSF-pages -->
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
  javax.faces.webapp.FacesServlet 
        entry -->
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>

</context-param>

<context-param>
    <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
    <param-value>false</param-value>
</context-param>

<context-param>
    <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
    <param-value>true</param-value>

</context-param>
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener</listener-
  class>
</listener>
<listener>
    <listener-class>testProj.SessionExpireHandler</listener-class>
</listener>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<filter>
    <filter-name>Faces Servlet</filter-name>
    <filter-class>testProj.SessionHandler</filter-class>
</filter>
<filter-mapping>
    <filter-name>Faces Servlet</filter-name>
    <url-pattern>*.faces</url-pattern>
</filter-mapping>
<!-- Welcome files -->
<welcome-file-list>
    <welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>
<session-config>
    <session-timeout>60</session-timeout>

</session-config>

 </web-app>
<listener>
    <listener-class>
        org.apache.myfaces.webapp.StartupServletContextListener
    </listener-class>
</listener>

JSF2.1需要一个与Servlet3.0兼容的容器,而Tomcat6.0是一个Servlet2.5容器。您需要JSF2.0。选择MyFaces2.0.x或Mojarra 2.0.x,但不要选择2.1.x。如果您真的需要JSF2.1,请将Tomcat升级到7.0。

您能分享这个异常吗?(如果有,请在服务器/webapp启动日志中显示任何警告/错误消息)。如果你展示你在Tomcat 6.0中使用的
web.xml
faces-config.xml
,这也会有所帮助。我本想在这篇文章中被你@BalusC猛烈抨击,因为我为什么在一个应用程序中包含了上面的这样或那样的库:-)将很快发布web.xml和faces-config.xml,但有例外/日志。谢谢你,如果你有不必要的图书馆:)但我现在明白了原因。我将发布一个答案。请注意,您在更新中谈到了“JSF和MyFaces”。这在术语上并不完全正确。你的意思是说“莫哈拉和我的脸”。两者都是JSF实现。MyFaces也是JSF。Mojarra恰好是JSF的参考实现。根据您的更新,这不是一个例外,而是一个关于缺少但非强制性属性的无辜警告。相反,您需要复制在HTTP 500错误页面中看到的异常(或者如果它是完全隐藏异常的自定义异常,那么请更好地阅读服务器日志)。无论如何,请检查我的答案更新。谢谢,请查看更新的问题,当我选择其中一个(Myfaces/JSF)或另一个(Myfaces/JSF)时会发生什么。我不确定
JSF tlds.jar
从何而来老实说,我继承了现有的应用程序jar文件。我把它移走了