org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentAction' defined in ServletContext resource [/WEB-INF/applicationContext_bean.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy1] to required type [cn.sjh.service.impl.StudentServiceImpl] for property 'stuSI'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy1] to required type [cn.sjh.service.impl.StudentServiceImpl] for property 'stuSI': no matching editors or conversion strategy found
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are:
PropertyAccessException 1:
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy1] to required type [cn.sjh.service.impl.StudentServiceImpl] for property 'stuSI'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy1] to required type [cn.sjh.service.impl.StudentServiceImpl] for property 'stuSI': no matching editors or conversion strategy found
Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy1] to required type [cn.sjh.service.impl.StudentServiceImpl] for property 'stuSI': no matching editors or conversion strategy found
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:231)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:815)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:645)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1122)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:245)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:188)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2012-6-16 9:07:53 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2012-6-16 9:07:53 org.apache.catalina.core.StandardContext start
严重: Context [/sjh_ssh_dom] startup failed due to previous errors
2012-6-16 9:07:53 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2012-6-16 9:07:58 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
2012-6-16 9:08:07 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8686
2012-6-16 9:08:07 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
下面是部分配置文件
<?xml version="1.0" encoding="GB18030"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 定义通知 -->
<bean id="alogger" class="cn.sjh.Advice.impl.LogAfterAdvice">
<property name="logService" ref="logService"></property>
</bean>
<!--
<bean id="blogger" class="cn.test.service.impl.BeforeAdvice"></bean>
<bean id="mlogger" class="cn.test.service.impl.MethodAdvisor"></bean>-->
<!-- 定义代理 -->
<bean id="shoppingPointCutAdvisor" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>studentService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>alogger</value>
</list>
</property>
</bean>
<!-- 配置事务管理器-->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 配置事务的传播特性 即事务的应用规则-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="asdassave*" propagation="REQUIRED" rollback-for="Throwable"/>
<tx:method name="del*" propagation="REQUIRED" rollback-for="Throwable"/>
<tx:method name="modify*" propagation="REQUIRED" rollback-for="Throwable"/>
</tx:attributes>
</tx:advice>
<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* cn.test.service.impl.*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
<!-- Dao层配置 -->
<bean id="studentDao" class="cn.sjh.dao.impl.StudentDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="logDao" class="cn.sjh.dao.impl.LogDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- Service层配置 -->
<bean id="logService" class="cn.sjh.service.impl.LogServiceImpl">
<property name="log_dao" ref="logDao"></property>
</bean>
<bean id="studentService" class="cn.sjh.service.impl.StudentServiceImpl">
<property name="stuDao" ref="studentDao"></property>
</bean>
<!-- Action层配置 -->
<bean id="studentAction" class="cn.sjh.action.StudentAction">
<property name="stuSI" ref="studentService"></property>
</bean>
</beans>
下面是service层代码
package cn.sjh.service.impl;
import java.util.List;
import cn.sjh.beans.*;
import cn.sjh.dao.impl.*;
import cn.sjh.service.*;
public class StudentServiceImpl implements IMyService {
private StudentDaoImpl stuDao;
public void delete(Object o) {
stuDao.delete(o);
}
public PageBean findAll(int start, int size) {
return stuDao.findAll(start, size);
}
public Object save(Object o) {
return stuDao.save(o);
}
public Object update(Object o) {
return stuDao.update(o);
}
public StudentDaoImpl getStuDao() {
return stuDao;
}
public void setStuDao(StudentDaoImpl stuDao) {
this.stuDao = stuDao;
}
}
下面是action代码
package cn.sjh.action;
import java.util.*;
import java.sql.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.*;
import com.opensymphony.xwork2.*;
import cn.sjh.service.impl.*;
import cn.sjh.service.*;
import cn.sjh.beans.*;
public class StudentAction extends ActionSupport implements ServletRequestAware,ServletResponseAware {
private HttpServletRequest request;
private HttpServletResponse response;
private int total;
private int page;
private int row;
private TStudent stu;
private List rows;
private IMyService stuSI;
private String resultMsg;
public String findAll()throws Exception{
this.resultMsg=null;
this.row=Integer.parseInt(request.getParameter("rows"));
PageBean pb=stuSI.findAll(getStart(), row);
this.setRows(pb.getRows());
this.setTotal(pb.getTotal());
System.out.println(rows.size());
/*List lt=this.rows;
for(int i=0;i<lt.size();i++){
Map mp=(Map)lt.get(i);
System.out.println(mp);
}*/
return SUCCESS;
}
public void update()throws Exception{
System.out.println(stu.getName()+"同学年龄"+stu.getAge()+"性别"+stu.getSex()+"电话"+stu.getPhone());
Object o=stuSI.update(this.stu);
if(o!=null){
this.resultMsg="学生信息修改成功";
}else{
this.resultMsg="学生信息修改成功";
}
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(this.resultMsg);
}
public int getStart(){
int start=(page-1)*row;
return start;
}
public void setServletRequest(HttpServletRequest arg0) {
// TODO Auto-generated method stub
this.request=arg0;
}
public void setServletResponse(HttpServletResponse arg0) {
// TODO Auto-generated method stub
this.response=arg0;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getRow() {
return row;
}
public void setRow(int row) {
this.row = row;
}
public void setStu(TStudent stu) {
this.stu = stu;
}
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
public void setStuSI(StudentServiceImpl stuSI) {
this.stuSI = stuSI;
}
public String getResultMsg() {
return resultMsg;
}
public void setResultMsg(String resultMsg) {
this.resultMsg = resultMsg;
}
public TStudent getStu() {
return stu;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。