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>
====================
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>
====================
{
this.iUserDAO = iUserDAO;
}
或者反过来试试
可能是这个问题吧。你试试
type="org.springframework.web.struts.DelegatingActionProxy"
<action attribute="userForm" input="/jsp/errors.jsp"
name="userForm" type="org.springframework.web.struts.DelegatingActionProxy" parameter="status" path="/user" scope="request"> 使用spring的代理action - DelegatingActionProxy
Datasource---->SessionFactory------>Dao------>Biz----->Action>看一下你spring里面是不是这样的
把iUserDAO 改成userDao 或者其他的试试
只要不是单独一个i 试试i后面多加一两个字母
顶!你看看是不是你Action里面的这个set方法有问题
一般是自动生成的,楼主不知道为什么要自己写,汗