org.springframework.beans.factory.BeanCreationException: Error creating bean with name “”serviceActionBean”” defined in ServletContext resource [/WEB-INF/bean.xml]: Cannot resolve reference to bean “”serviceDao”” while setting bean property “”serviceDao””; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name “”serviceDao”” defined in ServletContext resource [/WEB-INF/bean.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property “”sessionFactory”” of bean class [com.swu.dao.impl.ServiceDao]: Bean property “”sessionFactory”” is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? bean.xml 其他层代码: |
|
是不是dao的注入有问题啊。
|
|
没给HibernateDaoSupport 注入SessionFactory 或者HibernateTemplate
|
|
补充:我第一个userActionBean 的注入是没问题的,用户可以正常注册登录,第二个serviceActionBean注入就出现了问题,求解决
|
|
既然都是spring注入,为何有new对象了,new对象。。。。
|
|
你的ServiceAction类中,ServiceDao 改成IServiceDao,也就是改成接口,试一下。
|
|
你的service 为何没有setter方法?
|
|
而且你的 serviceAction 应该加上 scope = “”prototype””,否则存在线程安全问题
|
|
请教一下scope = “”prototype””会存在哪些线程安全问题。 |
|
10分 |
Sping容器管理的bean,默认是单例的,那么在serviceAction 里面有一个共享属性Service,多线程访问的时候Service的属性就可能同时被多个线程修改,所以会破坏了数据的完整性 |
补充:我的这个项目放在其他人的电脑上是不会报错,可以直接运行的,而在我这就会报上面的错,Java环境,tomcat我都换过了,没用,真不知道是为什么,哪里配置出了问题
|
|
困扰我一个星期的问题终于解决了,的确是因为单例模式造成的,加上 scope=””prototype”” 属性之后就不会再报错了,7楼大神,谢谢了。
|
|
是不是所有的bean都应该加上scope=””prototype””这个属性,还有为什么其他人电脑上不会报错呢? |
|
30分 |
谢谢不给分吗? 哥是新手,还没得过分呢 |
所有的Action 都得加上, 什么叫存在线程安全问题? 存在, 是隐患, 当并发操作Action 时会出现问题 |