问题描述
application.xml文件XML code <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/ects"></property> <property name="username" value="root"></property> <property name="password" value="1234"></property> </bean> <bean id="sessionFatory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="mappingResources"> <list> <value>cn/com/ambow/ects/entity/xml/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFatory"></property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFatory"></property> </bean> <bean id="userdao" class="cn.com.ambow.ects.dao.impl.UserDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> <bean id="Dyuser" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="target" ref="userdao"></property> <property name="transactionManager" ref="transactionManager"></property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean name="/struts/action/login" class="cn.com.ambow.ects.struts.action.UserAction" > <property name="userDaoImpl" ref="Dyuser"></property> </bean> </beans>struts-config.xml文件XML code <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <action-mappings> <!-- 用户登录--> <action path="/struts/action/login" type="cn.com.ambow.ects.struts.action.UserAction" parameter="login"> <forward name="success" path="/flower/index.jsp"></forward> <forward name="error" path="/flower/myaccount.jsp"></forward> </action> </action-mappings> <controller> <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor" /> </controller> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> </plug-in> </struts-config>web.xml文件XML code <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/flower/index.jsp</welcome-file> </welcome-file-list> </web-app>错误信息严重: action: nullorg.springframework.beans.factory.BeanCreationException: Error creating bean with name '/struts/action/login' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0] to required type [cn.com.ambow.ects.dao.impl.UserDaoImpl] for property 'userDaoImpl'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0] to required type [cn.com.ambow.ects.dao.impl.UserDaoImpl] for property 'userDaoImpl': no matching editors or conversion strategy foundat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:478)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)at java.security.AccessController.doPrivileged(Native Method)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:217)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:354)at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:295)at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)at javax.servlet.GenericServlet.init(GenericServlet.java:212)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)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:286)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Thread.java:619)Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0] to required type [cn.com.ambow.ects.dao.impl.UserDaoImpl] for property 'userDaoImpl'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0] to required type [cn.com.ambow.ects.dao.impl.UserDaoImpl] for property 'userDaoImpl': no matching editors or conversion strategy foundat org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:391)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1287)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1248)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1008)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:470)... 29 moreCaused by: java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0] to required type [cn.com.ambow.ects.dao.impl.UserDaoImpl] for property 'userDaoImpl': no matching editors or conversion strategy foundat org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:238)at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386)... 33 more2011-12-19 10:01:59 org.apache.catalina.core.ApplicationContext log信息: Marking servlet action as unavailable2011-12-19 10:01:59 org.apache.catalina.core.StandardWrapperValve invoke严重: Allocate exception for servlet action问题补充谁能帮我解决一下啊
解决方案
Cannot convert value of type [$Proxy0] to required type [cn.com.ambow.ects.dao.impl.UserDaoImpl] for property 'userDaoImpl': no matching editors or conversion strategy found 你在你的action注入的Dao有问题,在你的cn.com.ambow.ects.struts.action.UserAction里面你的Dao不能是实现类,而是接口。这个问题我前几天刚好遇到,把Action里面的dao的类改写成接口,然后getter和setter。如果还有问题,把你的action贴部分出来看看。