2009-12-07 45 views
0

可能这是一个缺乏关注的问题,如果是的话,请原谅我,但我看不到我做错了什么,它花了我整个下午,我需要你帮忙。JSF + RichFaces给了我一个HTTP状态404在我的页面

我正在做一个JSF + JPA + RichFaces应用程序,它非常简单。我做了JPA项目,测试了JSF项目,测试了一切正常,但是当我将RichFaces jar粘贴到WEB-INF/lib文件夹中时,甚至在我做任何更改之前,工作的页面都停止了,现在我得到一个HTTP状态404页面,就像我输入了错误的地址一样,但是我使用的地址比以前更多。

这里是我的web.xml

<?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_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
<display-name>Monaco</display-name> 

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 

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

<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> 

<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> 
</web-app> 

我的faces-config.xml中

<?xml version="1.0" encoding="UTF-8"?> 

<faces-config 
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-facesconfig_1_2.xsd" 
version="1.2"> 

<managed-bean> 
    <managed-bean-name>pessoa</managed-bean-name> 
    <managed-bean-class>cadastro.Pessoa</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 

<managed-bean> 
    <managed-bean-name>service</managed-bean-name> 
    <managed-bean-class>cadastro.PessoaService</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 

<navigation-rule> 
    <display-name>inserir.jsf</display-name> 
    <from-view-id>/cadastro/pessoa/inserir.jsp</from-view-id> 
    <navigation-case> 
     <from-outcome>sucesso</from-outcome> 
     <to-view-id>/cadastro/pessoa/listar.jsp</to-view-id> 
    </navigation-case> 
    <navigation-case> 
     <from-outcome>erro</from-outcome> 
     <to-view-id>/cadastro/pessoa/erro.jsp</to-view-id> 
    </navigation-case> 
</navigation-rule> 

<navigation-rule> 
    <display-name>listar.jsf</display-name> 
    <from-view-id>/cadastro/pessoa/listar.jsp</from-view-id> 
    <navigation-case> 
    <from-outcome>voltar</from-outcome> 
    <to-view-id>/cadastro/pessoa/inserir.jsp</to-view-id> 
    <redirect/> 
    </navigation-case> 
     <navigation-case> 
     <from-outcome>sucesso</from-outcome> 
     <to-view-id>/cadastro/pessoa/listar.jsp</to-view-id> 
     <redirect/> 
    </navigation-case> 
    <navigation-case> 
     <from-outcome>erro</from-outcome> 
     <to-view-id>/cadastro/pessoa/erro.jsp</to-view-id> 
    </navigation-case> 
    <navigation-case> 
     <from-outcome>editar</from-outcome> 
     <to-view-id>/cadastro/pessoa/inserir.jsp</to-view-id> 
    </navigation-case> 
    <navigation-case> 
     <from-outcome>editar</from-outcome> 
     <to-view-id>/cadastro/pessoa/inserir.jsp</to-view-id> 
    </navigation-case> 
</navigation-rule> 

<navigation-rule> 
    <display-name>erro.jsf</display-name> 
    <from-view-id>/cadastro/pessoa/erro.jsp</from-view-id> 
    <navigation-case> 
     <from-outcome>voltar</from-outcome> 
     <to-view-id>/cadastro/pessoa/listar.jsp</to-view-id> 
     <redirect/> 
    </navigation-case> 
</navigation-rule> 
</faces-config> 

我想我JPA项目没有与此错误的关系,因为它是一个separeted项目工作正常。

我的文件夹结构是一样的东西

Monaco/ 
    WebContent/ 
     cadastro/ 
      pessoa/ 
       erro.jsp 
       inserir.jsp 
       listar.jsp 
       test.jsp 
     WEB-INF/ 
      lib/ 
       richfaces-api-3.3.2.SR1.jar 
       richfaces-impl-3.3.2.SR1.jar 
       richfaces-ui-3.3.2.SR1.jar 
      faces-config.xml 
      web.xml 
     index.jsp 

使用RichFaces的罐子之前工作的网址http://localhost:8080/Monaco/faces/cadastro/pessoa/listar.jsp,但现在我得到:

HTTP Status 404 - /Monaco/faces/cadastro/pessoa/listar.jsp 
-------------------------------------------------------------------------------- 
type Status report 
message /Monaco/faces/cadastro/pessoa/listar.jsp 
description The requested resource (/Monaco/faces/cadastro/pessoa/listar.jsp) is not available. 
-------------------------------------------------------------------------------- 
JBoss Web/2.1.2.GA 

我尝试了很多的URL的变体,如:

在所有这些我收到同样的错误(应该是什么OK),但我不明白为什么它停止只是因为我添加RichFaces罐子...

Thankz guyz!

一些应用程序服务器的日志:

 
16:43:28,879 ERROR [[/Monaco]] Exception sending context initialized event to listener instance of class org.jboss.web.jsf.integration.config.JBossJSFConfigureListener 
javax.faces.FacesException: org.ajax4jsf.renderkit.ChameleonRenderKitFactory 
    at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:556) 
    at javax.faces.FactoryFinder.getImplementationInstance(FactoryFinder.java:448) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:249) 
    at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:1036) 
    at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:493) 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:381) 
    at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.java:69) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296) 
    at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.apache.catalina.core.StandardContext.init(StandardContext.java:5312) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296) 
    at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301) 
    at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104) 
    at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375) 
    at org.jboss.web.WebModule.startModule(WebModule.java:83) 
    at org.jboss.web.WebModule.startService(WebModule.java:61) 
    at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 
    at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 
    at $Proxy0.start(Unknown Source) 
    at org.jboss.system.ServiceController.start(ServiceController.java:417) 
    at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
    at $Proxy44.start(Unknown Source) 
    at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
    at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97) 
    at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238) 
    at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87) 
    at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188) 
    at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
    at $Proxy45.start(Unknown Source) 
    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 
    at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
    at $Proxy9.deploy(Unknown Source) 
    at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) 
    at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) 
    at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) 
    at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336) 
    at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 
    at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 
    at $Proxy0.start(Unknown Source) 
    at org.jboss.system.ServiceController.start(ServiceController.java:417) 
    at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
    at $Proxy4.start(Unknown Source) 
    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302) 
    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 
    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
    at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
    at $Proxy5.deploy(Unknown Source) 
    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482) 
    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362) 
    at org.jboss.Main.boot(Main.java:200) 
    at org.jboss.Main$1.run(Main.java:508) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:549) 
    ... 141 more 
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester 
    at org.ajax4jsf.resource.ResourceBuilderImpl.registerConfig(ResourceBuilderImpl.java:169) 
    at org.ajax4jsf.resource.ResourceBuilderImpl.registerResources(ResourceBuilderImpl.java:153) 
    at org.ajax4jsf.resource.ResourceBuilderImpl.init(ResourceBuilderImpl.java:224) 
    at org.ajax4jsf.renderkit.ChameleonRenderKitFactory.(ChameleonRenderKitFactory.java:62) 
    ... 146 more 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
    ... 150 more 
16:43:28,879 ERROR [StandardContext] Error listenerStart 
16:43:28,879 ERROR [StandardContext] Context [/Monaco] startup failed due to previous errors 

再见。

+0

给出一个exceprt的日志文件 – Bozho 2009-12-08 06:34:23

回答

2

您需要将webcontent文件放在/faces根文件夹中,与URL中的路径完全相同。

另一种方式是通过*.jsf取代的/faces/*url-pattern,这样就可以调用它们没有/faces路径,例如:http://localhost:8080/Monaco/cadastro/pessoa/listar.jsf。顺便说一句,你做不是需要重命名实际.jsp文件到.jsf

如果你想防止JSP直接访问文件(否则人们将能够请求.jsp文件,并面临RuntimeException: FacesContext not found),那么你可以将文件(包括文件夹结构)最好移入WEB-INF文件夹。

希望这会有所帮助。

编辑:您添加了appserver日志。第一个问题的根本原因如下:

java.lang.ClassNotFoundException: org.apache.commons.digester.Digester 

这相当自我解释:运行时类路径中缺少上述类。由于软件包名称已经提示它是Apache Commons Digester,您可以在http://commons.apache.org/digester处获得。将其放入运行时类路径(WEB-INF/lib)中并重新启动。查看后续错误是否会消失(可能是由同一问题间接造成的)。如果没有,回来编辑你的问题堆栈跟踪(不要忘记选择它并按代码按钮(0101011010)或按Ctrl + K)。

+0

Thankz的回复!是啊...我在网址中使用了/ faces/pattern,但它没有工作(这是,但是在我安装RichFaces jar之前),尝试了你所说的修改,将/ faces/*改为* .jsf并尝试访问URL http:// localhost:8080 /摩纳哥/ cadastro/pessoa/listar.jsf,仍然无法正常工作... – Alaor 2009-12-07 23:42:13

+0

好吧,也许'FacesServlet'无法启动。阅读应用程序服务器日志。 – BalusC 2009-12-07 23:45:46

+0

在日志中,我有很多与org.jboss.beans.metadata.plugins.AbstractPropertyMetaData有关的错误,只有这个类,它可以成为所有邪恶的根源吗?我认为这是JRE和JBoss版本的组合,因为我看了一个朋友代码,它几乎是一样的东西,它的工作,但在一个旧版本的JBoss ...让我们看... – Alaor 2009-12-08 00:04:53

0

查看JBoss的日志我意识到有一些apache类缺少RichFaces依赖工作(Apache Digester和BeanUtils),因此它停止为我的页面服务,这不是urls错误,但那个启动错误,好吧,因为我一步一步地逐行执行,jboss,eclipse,jpa和richfaces中的每个文档都告诉我,有人错过了我会需要这些包,我认为这是RichFaces的错,他们可以在入门文档中说明它需要一些来自apache的额外软件包。无论如何,谢谢你的回复,我非常感谢你的帮助!