请大家帮帮忙,我弄了很久还是不能解决,下面是异常及代码org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are:
PropertyAccessException 1:
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [com.gc.registDao.registDAO] to required type [com.gc.form.Regist] for property 'regist'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [com.gc.registDao.registDAO] to required type [com.gc.form.Regist] for property 'regist': no matching editors or conversion strategy found
Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [com.gc.registDao.registDAO] to required type [com.gc.form.Regist] for property 'regist': 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.getBean(AbstractBeanFactory.java:268)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:737)
at org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:127)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:109)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)下面是我的applicationContext.xml的配置文件:<?xml version="1.0" encoding="gb2312"?>
<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.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://localhost:1433">
</property>
<property name="username" value="sa"></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.SQLServerDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/gc/form/Regist.hbm.xml</value>
</list>
</property>
</bean>
<bean name="/regist"
class="com.yourcompany.struts.action.RegistAction" abstract="false"
lazy-init="default" autowire="default" scope="prototype"
dependency-check="default">
<property name="regist">
<ref local="registDao" />
</property>
<property name="regist_dao">
<ref local="registDao" />
</property>
</bean> <bean name="regist" class="com.gc.form.Regist"></bean> <bean id="registDao" class="com.gc.registDao.registDAO">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
</beans>
下面是struts-config.xml的配置文件 :
<?xml version="1.0" encoding="gb2312"?>
<!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>
  <data-sources />
  <form-beans >
    <form-bean name="registForm" type="com.yourcompany.struts.form.RegistForm" />  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="registForm"
      input="/index.jsp"
      name="registForm"
      path="/regist"
      scope="request" type="org.springframework.web.struts.DelegatingActionProxy">
      <forward name="succ" path="/successful.jsp" />
      <forward name="failed" path="/failed.jsp" />
    </action>  </action-mappings>
 
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
   <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
  </plug-in>
  
</struts-config>

解决方案 »

  1.   

    这是与异常相关联的两个类:下面是registDao这个类:
    package com.gc.registDao;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;import com.gc.form.Regist;public class registDAO { private SessionFactory sessionFactory; private Session session; private Transaction tx; public SessionFactory getSessionFactory() {
    return sessionFactory;
    } public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
    } public boolean registed(Regist reg) {
    try
    {
    session = sessionFactory.openSession();
    tx = session.beginTransaction();
    session.save(reg);
    tx.commit();
    session.close();
    return true;
    }catch(Exception e)
    {
    e.printStackTrace();
    return false;
    }
    }
    }下面是registAction 这个类:
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.yourcompany.struts.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;import com.gc.form.Regist;
    import com.gc.registDao.registDAO;
    import com.yourcompany.struts.form.RegistForm;/** 
     * MyEclipse Struts
     * Creation date: 10-22-2008
     * 
     * XDoclet definition:
     * @struts.action path="/regist" name="registForm" input="/index.jsp" scope="request" validate="true"
     */
    public class RegistAction extends Action {
    /*
     * Generated Methods
     */ /** 
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    private Regist regists,reg;
    private registDAO regist_dao;
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    RegistForm registForm = (RegistForm) form;// TODO Auto-generated method stub
    regists=new Regist();

    regists.setAddress(registForm.getAddress());
    regists.setAge(registForm.getAge());
    regists.setBirthday(registForm.getBirthday());
    regists.setGrander(registForm.getGrander());
    regists.setUserName(registForm.getUser_name());
    regists.setId(registForm.getID());


    if(regist_dao.registed(regists))
    {
    System.out.println("注册成功......");
    return mapping.findForward("succ");
    }
    else
    {
    System.out.println("注册失败......");
    return mapping.findForward("failed");
    }

    }
    public Regist getRegist() {
    return regists;
    }
    public void setRegist(Regist regists) {
    this.regists = regists;
    }
    public registDAO getRegist_dao() {
    return regist_dao;
    }
    public void setRegist_dao(registDAO regist_dao) {
    this.regist_dao = regist_dao;
    }
    public Regist getRegists() {
    return regists;
    }
    public void setRegists(Regist regists) {
    this.regists = regists;
    }
    }
      

  2.   

    我也遇到跟你差不多的问题,请教一下你是怎样解决的呢,是不是spring包和hibernate发生冲突哦
      

  3.   

    我也遇到了,后来重新取消了事务重新发布,再加上事务再发布自己就行了应该myeclipse自带的问题
      

  4.   

    我也遇到了,后来重新取消了事务重新发布,再加上事务再发布自己就行了应该myeclipse自带的问题