前一个星期看夏昕的《SpringGuide》的资料,做了个登录的小练习,运行服务器报错:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.pool.impl.GenericObjectPool: method <init>()V not found
Caused by: 
java.lang.NoSuchMethodError: org.apache.commons.pool.impl.GenericObjectPool: method <init>()V not found
以及:
2009-4-10 9:17:56 org.apache.catalina.core.ApplicationContext log
严重: action: null
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.pool.impl.GenericObjectPool: method <init>()V not found这是我的配置信息:
struts-config.xml   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="userForm" type="com.chenyu.form.userForm" />
  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="userForm"
      name="userForm"
      parameter="operate"
      path="/login"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" >
      <forward name="success" path="/WEB-INF/jsp/loginOk.jsp" />
      <forward name="errorLogin" path="/index.jsp" />
      </action>
      
  </action-mappings>  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
  
 
  
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
     <set-property property="contextConfigLocation" 
        value="classpath:applicationContext.xml" />
  </plug-in>
</struts-config>
web.xml的配置信息   <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list></web-app>
applicationContext.xml配置信息在我的回帖中,发帖长度不够了!

解决方案 »

  1.   

    applicationContext.xml中的配置信息:  <?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- DataSource -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
           <property name="driverClassName">
               <value>com.mysql.jdbc.Driver</value>
           </property>
           <property name="url">
               <value>jdbc:mysql://localhost:3306/sample</value>
           </property>
           <property name="username">
               <value>root</value>
           </property>
           <property name="password">
               <value>123456</value>
           </property>
        </bean>
        
    <!-- sessionFactory -->
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
           <property name="dataSource" >
               <ref local="dataSource"/>
           </property>
           <property name="mappingResources">
               <list>
                 <value>com/chenyu/entity/User.hbm.xml</value>
               </list>
           </property>
           <property name="hibernateProperties">
               <props>
                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                 <prop key="hibernate.show_sql">true</prop>
               </props>
           </property>
        </bean>
        
        <bean id="transactionManager"
              class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                <property name="sessionFactory">
                     <ref local="sessionFactory" />
                </property>
        </bean>
        
    <!--DAO  -->
        <bean id="userDAO" class="com.chenyu.db.dao.UserDAOImpl">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
    </property>
        </bean>
        
        <bean id="userDAOProxy" 
              class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
                <ref bean="transactionManager" />
            </property>
            <property name="target">
                <ref local="userDAO" />
            </property>
            <property name="transactionAttributes">
                <props>
                   <prop key="insert*">PROPAGATION_REQUIRED</prop>
                   <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                   <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
                </props>
            </property>
        </bean>
        
    <!-- Action -->
        <bean name="/login" class="com.chenyu.action.LoginAction">
             <property name="userDao">
                 <ref bean="userDAOProxy" />
             </property>
        </bean>
        
    </beans>报错运行程序 浏览器显示错误:HTTP Status 404 - Servlet action is not available
    望各位前辈指点迷津,以前在网上也找了很多原因,试了都不行。
    小弟因为这个原因已经对自学java的信心正慢慢丧失,只是不甘心。
      

  2.   

    咦  上面贴的代码怎么没显示  重来。
    applicationContext.xml中的配置信息<?xml version="1.0" encoding="UTF-8"?>
    <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- DataSource -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
           <property name="driverClassName">
               <value>com.mysql.jdbc.Driver</value>
           </property>
           <property name="url">
               <value>jdbc:mysql://localhost:3306/sample</value>
           </property>
           <property name="username">
               <value>root</value>
           </property>
           <property name="password">
               <value>123456</value>
           </property>
        </bean>
        
    <!-- sessionFactory -->
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
           <property name="dataSource" >
               <ref local="dataSource"/>
           </property>
           <property name="mappingResources">
               <list>
                 <value>com/chenyu/entity/User.hbm.xml</value>
               </list>
           </property>
           <property name="hibernateProperties">
               <props>
                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                 <prop key="hibernate.show_sql">true</prop>
               </props>
           </property>
        </bean>
        
        <bean id="transactionManager"
              class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                <property name="sessionFactory">
                     <ref local="sessionFactory" />
                </property>
        </bean>
        
    <!--DAO  -->
        <bean id="userDAO" class="com.chenyu.db.dao.UserDAOImpl">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
    </property>
        </bean>
        
        <bean id="userDAOProxy" 
              class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
                <ref bean="transactionManager" />
            </property>
            <property name="target">
                <ref local="userDAO" />
            </property>
            <property name="transactionAttributes">
                <props>
                   <prop key="insert*">PROPAGATION_REQUIRED</prop>
                   <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                   <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
                </props>
            </property>
        </bean>
        
    <!-- Action -->
        <bean name="/login" class="com.chenyu.action.LoginAction">
             <property name="userDao">
                 <ref bean="userDAOProxy" />
             </property>
        </bean>
        
    </beans>
      

  3.   

    'sessionFactory'的配置有问题。 
    org.springframework.orm.hibernate3.LocalSessionFactoryBean这个类是否引入,org.apache.commons.dbcp.BasicDataSource配置是否正确。
      

  4.   

    你要使用的MyEclipse配置的hibernate和Spring环境
    你检查一下Referenced Libaries下面
    是否有
    asm-2.2.3
    asm
    这两个jar包,这两个jar包删除一个,重复了注意不要误删了以asm为前缀的包删除之后再重新发布试试
      

  5.   

    我已经把Spring-Hibernate3.jar包引进来了啊,那org.springframework.orm.hibernate3.LocalSessionFactoryBean这个类也已经引入了,org.apache.commons.dbcp.BasicDataSource配置我检查过 没问题的吧。
      

  6.   

    导入或替换一个新 的commons-pool.jar
      

  7.   


    没有这两个包啊,我在导入的Spring 2.0 AOP Libraries这个包里有asm-2.2.3,其他的都没有。