请教各位高手,我在myeclipse6.0下开发应用jsf框架的web程序,引入了ajax4jsf框架,将richfaces-api-3.2.1.GA.jar/richfaces-impl-3.2.1.GA.jar/richfaces-ui-3.2.1.GA.jar文件包含到工程中了,web.xml文件相关设置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" 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>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <context-param>
   <param-name>org.richfaces.SKIN</param-name>
   <param-value>blueSky</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>
<listener>   
        <listener-class>   
          com.sun.faces.config.ConfigureListener    
        </listener-class>   
</listener>   
......
发布之后,用MyEclipse启动Tomcat(版本号6.0),报错如下:
严重: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.ajax4jsf.application.DebugLifecycleFactory.<clinit>(DebugLifecycleFactory.java:39)
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)
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:865)
at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:536)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:436)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
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.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2008-6-16 19:50:27 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2008-6-16 19:50:27 org.apache.catalina.core.StandardContext start
严重: Context [/JSFPROJECT] startup failed due to previous errors
2008-6-16 19:50:27 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2008-6-16 19:50:27 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2008-6-16 19:50:27 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31  config=null
2008-6-16 19:50:27 org.apache.catalina.startup.Catalina start我发现如果工程中不引用ajax4jsf框架就不会出现这个问题,如果单把那三个jar文件拷贝到web-inf/lib下的话,启动会报同样的错,不知道为什么,请各位大侠指点:)

解决方案 »

  1.   

    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 把 apache-common.XXX.jar 复制到
    tomcat/shared/lib 目录下面
      

  2.   

    哦!或者放到你的项目的
    WEB-INF/lib
    目录下面
      

  3.   

    不好意思,我是初学者,不知道apache-common.XXX.jar具体是那个jar文件,在那里?
      

  4.   

    我认为恰恰相反,你的lib里面东西太多了,richfaces3.2.1的那三个文件已经包含了jsf所有api,你需要把原来的jsf相关文件都删掉就可以了.richfaces3.2.1仅支持最高版本的jsf,以前的版本不支持.
      

  5.   

    这些包是一定要有的
    commons-beanutils-1.7.0.jar
    commons-collections-3.1.jar
    commons-digester-1.7.jar
    commons-logging-1.0.4.jar
      

  6.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【richiezhao】截止到2008-07-15 11:35:34的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:0                        
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:---------------------
    无满意结贴率:100.00%               无满意结分率:---------------------
    敬礼!
      

  7.   

    我也是遇到这个问题啊。版本问题让人恼火,不明白richFaces怎么和原Jsf包冲突~~