2009-08-27 12:38:39,109 ERROR [org.springframework.web.context.ContextLoader] -
Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
h name '/user' defined in ServletContext resource [/WEB-INF/applicationContext.x
ml]: Error setting property values; nested exception is org.springframework.bean
s.NotWritablePropertyException: Invalid property 'iUserDAO' of bean class [org.l
xh.myznt.struts.action.UserAction]: Bean property 'iUserDAO' is not writable or
has an invalid setter method. Did you mean 'IUserDAO'?
Caused by:
org.springframework.beans.NotWritablePropertyException: Invalid property 'iUserD
AO' of bean class [org.lxh.myznt.struts.action.UserAction]: Bean property 'iUser
DAO' is not writable or has an invalid setter method. Did you mean 'IUserDAO'?
      
public class UserAction extends Action
{
private IUserDAO iUserDAO;
....................................
public IUserDAO getIUserDAO()
{
return iUserDAO;
} public void setIUserDAO(IUserDAO userDAO)
{
iUserDAO = userDAO;
}


}==================
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>
.....
<action-mappings>
<action attribute="userForm" input="/jsp/errors.jsp"
name="userForm" parameter="status" path="/user" scope="request">
<forward name="registersuccess" path="/jsp/index.jsp"></forward>
<forward name="registerfailure" path="/jsp/register.jsp"></forward>
</action> </action-mappings>
..................
</struts-config>
=================================================
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/mldn"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<!-- 自动提交 -->
<prop key="hibernate.connection.autocommit">true</prop>
<!-- 显示sql语句 -->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>org/lxh/myznt/vo/User.hbm.xml</value>
</list>
</property>
</bean> <bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="iuserdao" class="org.lxh.myznt.dao.IUserDAO"
abstract="true">
</bean> <bean id="iUserDAOImpl" class="org.lxh.myznt.dao.impl.IUserDAOImpl"
parent="iuserdao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean> <bean name="/user" class="org.lxh.myznt.struts.action.UserAction">
<property name="iUserDAO" ref="iUserDAOImpl"></property>
</bean>
</beans>
====================

解决方案 »

  1.   

    public void setIUserDAO(IUserDAO iUserDAO 

    this.iUserDAO = iUserDAO

      

  2.   

    iuserdao 改成 iUserDAO
    或者反过来试试 
      

  3.   

    检查一下配置文件没错  是不是没有cglib.jar
      

  4.   

    他已经说了是你的bean的问题.你生成getset是iUserDAO 这个对象,但你bean定义的事iuserdao 
    可能是这个问题吧。你试试
      

  5.   

    org.lxh.myznt.struts.action.UserAction  写对了吗?struts-config.xml 中的 action 中的type改成
     type="org.springframework.web.struts.DelegatingActionProxy"
      

  6.   


    <action attribute="userForm" input="/jsp/errors.jsp"
    name="userForm" type="org.springframework.web.struts.DelegatingActionProxy" parameter="status" path="/user" scope="request"> 使用spring的代理action  - DelegatingActionProxy
      

  7.   

         spring里面配置有错误    估计有两个原因  你的类里面有错误导致spirng里面报错     还有你的bean   里面写错误 或者找不到。
      Datasource---->SessionFactory------>Dao------>Biz----->Action>看一下你spring里面是不是这样的
      

  8.   

    有时候可能你命名不规范,spring无法识别
    把iUserDAO 改成userDao 或者其他的试试
    只要不是单独一个i 试试i后面多加一两个字母
      

  9.   


    顶!你看看是不是你Action里面的这个set方法有问题
    一般是自动生成的,楼主不知道为什么要自己写,汗