您的位置:首页 > 编程语言 > Java开发

org.springframework.beans.NotWritablePropertyException

2015-12-14 19:25 645 查看


org.springframework.beans.NotWritablePropertyException异常的问题 [问题点数:50分,结帖人wudi251314]

不显示删除回复显示所有回复
显示星级回复显示得分回复
只显示楼主 

收藏





关注
wudi251314
wudi251314
本版等级:


结帖率:100%
楼主发表于: 2008-09-14 12:57:42

异常信息如下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/jsp/user' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'dao' of bean class [wudi.cn.struts.action.UserAction]: Bean property 'dao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

applictionContext.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"></ref>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.MySQLDialect

</prop>

<prop key="hibernate.connection.autocommit">true</prop>

<prop key="hibernate.show_sql">false</prop>

</props>

</property>

<property name="mappingResources">

<list>

<value>wudi/cn/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="wudi.cn.dao.IUserDAO" abstract="true">

</bean>

<bean id="iuserdaoimpl" class="wudi.cn.impl.IUserDAOImpl"

parent="iuserdao">

<property name="hibernateTemplate">

<ref bean="hibernateTemplate" /></property>

</bean>

<bean name="/jsp/user"

class="wudi.cn.struts.action.UserAction">

<property name="dao">

<ref bean="iuserdaoimpl" />

</property>

</bean>

</beans>

UserAction代码如下:

/*

 * Generated by MyEclipse Struts

 * Template path: templates/java/JavaClass.vtl

 */

package wudi.cn.struts.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionMessages;

import org.apache.struts.actions.DispatchAction;

import wudi.cn.dao.IUserDAO;

import wudi.cn.struts.form.UserForm;

import wudi.cn.util.MD5Code;

import wudi.cn.vo.User;

/** 

 * MyEclipse Struts

 * Creation date: 09-08-2008

 * 

 * XDoclet definition:

 * @struts.action path="/user" name="userForm" input="/form/user.jsp" parameter="status" scope="request" validate="true"

 */

public class UserAction extends DispatchAction {

/*

 * Generated Methods

 */
private IUserDAO dao=null; /** dao属性已经在这定义了

 * Method execute

 * @param mapping

 * @param form

 * @param request

 * @param response

 * @return ActionForward

 */

public ActionForward register(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

UserForm userForm = (UserForm) form;

// 先判断验证码是否正确

String ccode = (String) request.getSession().getAttribute("ccode");

String checkcode = userForm.getCheckcode();

if (!(checkcode.equals(ccode))) {

ActionMessages errors = new ActionMessages();

errors.add("checkcode", new ActionMessage("checkcode.error"));

super.saveErrors(request, errors);

return mapping.getInputForward();

}

// 如果正确,则需要向数据库中插入

User user = null;

try {

user = this.dao.queryByUserid(userForm.getUserid());

if (user == null) {

MD5Code md5 = new MD5Code();

user = new User();

user.setUserid(userForm.getUserid());

user.setUserpwd(md5.getMD5ofStr(userForm.getUserpwd()));

user.setUserques(userForm.getUserques());

user.setUserans(userForm.getUserans());

// System.out.println("** " + userForm.getUserques());

user.setSex("男");

user.setGrade(1);

// 查询此用户是否存在

this.dao.register(user);

// 成功之后要将用户名和用户等级保存在session之中

request.getSession().setAttribute("userid", user.getUserid());

request.getSession().setAttribute("grade", user.getGrade());

return mapping.findForward("registersuccess");

} else {

ActionMessages errors = new ActionMessages();

errors.add("exist", new ActionMessage("user.userid.exist"));

super.saveErrors(request, errors);

return mapping.getInputForward();

}

} catch (Exception e) {

e.printStackTrace();

return mapping.findForward("registerfailure");

}

}

public IUserDAO getDao() {

return dao;

}

public void setDao(IUserDAO userdao) {

this.dao = userdao;

}                setter/gettter方法在这已经定义了   可是还报错

}

请各位帮忙解决一下 谢谢了 

更多2分享到:

<iframe frameborder="0" src="http://tpc.googlesyndication.com/safeframe/1-0-2/html/container.html#xpc=sf-gdn-exp-1&p=http%3A//bbs.csdn.net" id="google_ads_iframe_/8456/IDG.CN_B2B_csdn.net_0" name="1-0-2;78719;<div id=adunit><div id=ads ><ul><li id=taw0 class="taw taw0" lang="zh-cn"><div class="rh"><table><tr><td class="rh1c"><div class="rh1"><table><tr><td class="rh10c"><div class="rh-box-title rh-title rh10 collapsed-box"><a target=_blank class="rhtitle rhdefaultcolored" href="http://www.googleadservices.com/pagead/aclk?sa=L&ai=CAhoGY6NuVsqiNoaD9gWk872wAazk8doHzI3ErIwCwI23ARABINvPvRdgncnggegFoAHkypHDA8gBAakCxhOtM8DHhD7gAgCoAwHIA5sEqgSPAU_Qi7075DJFEmutbLJCtSnDIYuE5Ahkyo0VlI_TOgbZuUZErV2X5Pgm_Kq-s9C-jCiE2m6aThg_DGvLtPQHQIuDvGiGXtrXorO9GBu8qKEPlTnlIfCVpatNrs_uH4faKVyoJ4fAInpa9b9uBW45XlGOqBYC3huL-D7ob3aYbG3eK858I0lbOe4U6G8g0zfU4AQBiAYBgAeEte48qAemvhvYBwE&num=1&cid=5GjgSBsblBatFQKgFjjyBWFR&sig=AOD64_0RTsIvwQruuApETpAJyl35ewqSkQ&client=ca-pub-7443704194229694&adurl=http://www.jiankongbao.com" target=_blank title="www.jiankongbao.com"><span>比开源软件更好用的监控服务</span></a></div></td></tr><tr><td class="rh11c"><div class="rh-box-url rh-url rh11"><div class="rhurlctr rhdefaultcolored rhurlctr_nowrap rhurlctr_clickable" dir="ltr"><a target=_blank class="rhurl rhdefaultcolored" title="jiankongbao.com" href="http://www.googleadservices.com/pagead/aclk?sa=L&ai=CAhoGY6NuVsqiNoaD9gWk872wAazk8doHzI3ErIwCwI23ARABINvPvRdgncnggegFoAHkypHDA8gBAakCxhOtM8DHhD7gAgCoAwHIA5sEqgSPAU_Qi7075DJFEmutbLJCtSnDIYuE5Ahkyo0VlI_TOgbZuUZErV2X5Pgm_Kq-s9C-jCiE2m6aThg_DGvLtPQHQIuDvGiGXtrXorO9GBu8qKEPlTnlIfCVpatNrs_uH4faKVyoJ4fAInpa9b9uBW45XlGOqBYC3huL-D7ob3aYbG3eK858I0lbOe4U6G8g0zfU4AQBiAYBgAeEte48qAemvhvYBwE&num=1&cid=5GjgSBsblBatFQKgFjjyBWFR&sig=AOD64_0RTsIvwQruuApETpAJyl35ewqSkQ&client=ca-pub-7443704194229694&adurl=http://www.jiankongbao.com" target="_blank"><span>jiankongbao.com</span></a></div></div></td></tr><tr><td class="rh13c"><div class="rh-body rh-box-body rh13"><span class="rhbody rhdefaultcolored">比Nagios、Cacti更好用的监控软件 免费试用 有意外惊喜</span></div></td></tr></table></div></td></tr></table></div><div id=abgc class=abgc dir='ltr'><div id=abgb class="abgb"></div><div id=abgs class=abgs><a target=_blank id=abgl class=abgl href="https://www.google.com/url?ct=abg&amp;q=https://www.google.com/adsense/support/bin/request.py%3Fcontact%3Dabg_afc%26url%3Dhttp://bbs.csdn.net/topics/270003732%26gl%3DCN%26hl%3Dzh%26client%3Dca-pub-7443704194229694%26ai0%3DCAhoGY6NuVsqiNoaD9gWk872wAazk8doHzI3ErIwCwI23ARABINvPvRdgncnggegFoAHkypHDA8gBAakCxhOtM8DHhD7gAgCoAwHIA5sEqgSPAU_Qi7075DJFEmutbLJCtSnDIYuE5Ahkyo0VlI_TOgbZuUZErV2X5Pgm_Kq-s9C-jCiE2m6aThg_DGvLtPQHQIuDvGiGXtrXorO9GBu8qKEPlTnlIfCVpatNrs_uH4faKVyoJ4fAInpa9b9uBW45XlGOqBYC3huL-D7ob3aYbG3eK858I0lbOe4U6G8g0zfU4AQBiAYBgAeEte48qAemvhvYBwE&amp;usg=AFQjCNHgCO2GxZk8QprOd2dp2mkwogn4BQ" target=_blank></a></div></div><div id="cbc" class=cbc ><div id="cb-x" class=cb-x></div> </div> <div id="ddmc" style="display:none"><div class="tip"></div><div class="dropdown-content"><table><tr><td><div id="pubmute" style="border-bottom:1px solid #999;" class="dropdown-item"><span>广告覆盖了页面</span></div></td></tr><tr><td><div id="admute" class="dropdown-item"><span>举报此广告</span></div></td></tr></table></div></div></li></ul></div><div class=ads_chrome_top></div><div class=ads_chrome_bottom></div><div class=ads_chrome_left></div><div class=ads_chrome_right></div></div><iframe scrolling="no" frameborder=0 height=0 width=0 src="http://cm.g.doubleclick.net/push?client=ca-pub-7443704194229694" style="position:absolute"></iframe>感谢您的反馈! 撤消此广告有什么问题?重复显示内容不当不相关感谢您的反馈! 返回我们将对此广告进行审核,以便改善用户在今后的体验。感谢您的反馈! 撤消我们会根据您的反馈审核此网站上的广告。即将关闭广告:%1$d 秒
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: