Unable to instantiate Action, adminAction,  defined for 'login' in namespace '/'Error creating bean with name 'adminAction' defined in file [D:\apache-tomcat-5.5.12\webapps\book\WEB-INF\classes\applicationContext-actions.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0 implementing org.hfjob.service.AdminManager,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.hfjob.service.impl.AdminManagerImpl] for property 'manager'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0 implementing org.hfjob.service.AdminManager,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.hfjob.service.impl.AdminManagerImpl] for property 'manager': no matching editors or conversion strategy found - action - file:/D:/apache-tomcat-5.5.12/webapps/book/WEB-INF/classes/struts.xml:8:61
at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:294)
at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:365)
at com.opensymphony.xwork2.DefaultActionInvocation.access$000(DefaultActionInvocation.java:38)
at com.opensymphony.xwork2.DefaultActionInvocation$1.doProfiling(DefaultActionInvocation.java:83)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.<init>(DefaultActionInvocation.java:74)
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'adminAction' defined in file [D:\apache-tomcat-5.5.12\webapps\book\WEB-INF\classes\applicationContext-actions.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0 implementing 
------------------------------------------------------
<?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:aop="http://www.springframework.org/schema/aop"
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/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</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="insert*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>

<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:advisor pointcut="execution(* org.hfjob.service.impl.*.*(..))" advice-ref="txAdvice"/>
</aop:config>

<bean id="adminAction" class="org.hfjob.actions.AdminAction" scope="prototype">
<property name="admin" ref="admin"/>
<property name="manager" ref="adminManagerImpl"/>
</bean><bean id="admin" class="org.hfjob.model.Admin"/><bean id="adminManagerImpl" class="org.hfjob.service.impl.AdminManagerImpl">
<property name="dao" ref="adminDaoImpl"/>
</bean>
</beans>
----------------------------------------------------
红色的是当前进行事务处理的包,但是呢,把报名改成不存在的就不报错,什么原因?
--------------------------------------------------------------------
package org.hfjob.service;import java.util.List;import org.hfjob.model.Admin;public interface AdminManager {
/**
 * 根据id加载
 * @param id
 * @return Admin
 */
public Admin findById(int id);
/**
 * 根据属性查找
 * @param key
 * @param value
 * @return List
 */
@SuppressWarnings("unchecked")
public List getAdmin(String key,String value);
/**
 * 检测登陆
 * @param admin
 * @return boolean
 */
public boolean checkLogin(Admin admin);
/**
 * 得到所有记录
 * @return List
 */
@SuppressWarnings("unchecked")
public List getList(); /**
 * 
 *增加记录
 */
public void insert(Admin admin);

/**
 * 更新记录
 */
public void update(Admin admin);

/**
 * 删除记录
 * @param admin
 */
public void delete(Admin admin);}

解决方案 »

  1.   

    package org.hfjob.service.impl;import java.util.List;import org.hfjob.dao.impl.AdminDaoImpl;
    import org.hfjob.model.Admin;
    import org.hfjob.service.AdminManager;public class AdminManagerImpl implements AdminManager {

    private AdminDaoImpl dao;
    //根据主键加载
    public Admin findById(int id) {

    try {
    return dao.findByID(id);
    } catch (RuntimeException e) {
    throw e;
    }

    }
    //根据属性查找
    @SuppressWarnings("unchecked")
    public List getAdmin(String key, String value) {

    try {
    return dao.getAdmin(key, value);
    } catch (RuntimeException e) {
    throw e;
    }

    }
    //检测登陆
    public boolean checkLogin(Admin admin) {
    if(this.getAdmin("username", admin.getUsername()).size()>0 && this.getAdmin("pwd", admin.getPwd()).size()>0){
    return true;
    }
    return false;
    }
    //增加记录
    public void insert(Admin admin){
    try {
    dao.add(admin);
    } catch (RuntimeException e) {
    throw e;
    }
    }
    //更新记录
    public void update(Admin admin){
    try {
    dao.modify(admin);
    } catch (RuntimeException e) {
    throw e;
    }
    }
    //删除记录
    public void delete(Admin admin){
    try {
    dao.delete(admin);
    } catch (RuntimeException e) {
    throw e;
    }
    }
    //获取所有记录
    @SuppressWarnings("unchecked")
    public List getList(){
    List list=null;
    return list;
    }
    //getter and setter方法
    public AdminDaoImpl getDao() {
    return dao;
    } public void setDao(AdminDaoImpl dao) {
    this.dao = dao;
    }
    }
      

  2.   

    应该Action在配置文件的配置问题了 ,仔细去检查一下
      

  3.   

    我的问题解决了,
    把<aop:config>更改为<aop:config proxy-target-class="true"> ok!
    希望你也能解决你的问题!!
      

  4.   

    Unable to instantiate Action, adminAction,  defined for 'login' in namespace '/'Error creating bean with name 'adminAction' defined in file [D:\apache-tomcat-5.5.12\webapps\book\WEB-INF\classes\applicationContext-actions.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy0 implementing org.hfjob.service.AdminManager,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.hfjob.service.impl.AdminManagerImpl] for property 'manager'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy0 implementing org.hfjob.service.AdminManager,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [org.hfjob.service.impl.AdminManagerImpl] for property 'manager': no matching editors or conversion strategy found - action - file:/D:/apache-tomcat-5.5.12/webapps/book/WEB-INF/classes/struts.xml:8:61 
    问题已经摆出来了创建adminAction时在defined in file [D:\apache-tomcat-5.5.12\webapps\book\WEB-INF\classes\applicationContext-actions.xml]这个文件中初始化这个Bean活字段出现nested(嵌套式)Exception,除了这个错误之前还有错误,好好检查一下Applicationcontext.xml文件!看看虚拟路径是否一致!