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);}
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);}
解决方案 »
- 关于Webservice+struts+sping 的scope问题
- 关于嵌在form里面的jsp文件过大问题
- spring 2.5 struts1.2 myeclipse7.0 HTTP Status 404 - Servlet action is not available请问怎么解决
- 关于java ping程序统计icmp报文 __大家来共同研究,学习 与进步:)
- 100分相赠JAVA高手,关于数据库操作的StringBuffer
- jdk1.5+CORBA的问题,急!!!!
- 数据库中有一自动编号的主键,EJB中如何处理?
- struts2中<s:property value="#username"/>什么时候用# 什么时候不用#
- 用JCombobox时碰到的奇怪问题,急!!!
- 报错ParameterMap cannot be cast to java.util.HashMap的问题
- struts1.2 spring 2.5 hibetnate3.1 oracle数据库反向生成,运行报错
- 2009-07-02 JAVA就业冲刺班团报 组团
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;
}
}
把<aop:config>更改为<aop:config proxy-target-class="true"> ok!
希望你也能解决你的问题!!
问题已经摆出来了创建adminAction时在defined in file [D:\apache-tomcat-5.5.12\webapps\book\WEB-INF\classes\applicationContext-actions.xml]这个文件中初始化这个Bean活字段出现nested(嵌套式)Exception,除了这个错误之前还有错误,好好检查一下Applicationcontext.xml文件!看看虚拟路径是否一致!