`
阅读更多
Caused by: java.lang.IllegalStateException: Cannot convert value of type [$Proxy4 implementing com.yang.ssh.dao.UserDao,org.springframework.beans.factory.InitializingBean,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [com.yang.ssh.dao.UserDaoImpl] for property 'userDao': no matching editors or conversion strategy found

今天整合S2SH出现了以上的错误,折腾了好久没有解决,望路过的大侠,帮我看看。

我的applicationContext.xml的主要内容为:


<!-- 集成hibernate的配置文件 -->

<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource" ref="dataSource" />

<!-- 加载配置***.hbm.xml的路径 -->

<property name="mappingResources">

<list>

<value>com/yang/ssh/bean/User.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<value>

hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

hibernate.show_sql=true

hibernate.hbm2ddl.auto=create-drop

</value>

</property>

</bean>

<!-- 配置事务管理器 -->

<bean name="transactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory" />

</bean>

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<tx:method name="*" propagation="REQUIRED" />

</tx:attributes>

</tx:advice>

<aop:config>

<!-- 因为逻辑太简单了,所以就把事务配置在了Dao层。实际使用中是不会在dao层配置事务的。 -->

<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.yang.ssh.dao.UserDaoImpl.*(..))"/>

</aop:config>

<!-- 这里使用了set方法进行注入

配置Dao的实现类

-->

<bean name="userDao" class="com.yang.ssh.dao.UserDaoImpl">

<property name="sessionFactory" ref="sessionFactory"/>

</bean>

<!-- 配置Action -->

<bean name="userAction" class="com.yang.ssh.action.UserAction">

    <property name="userDao" ref="userDao"/>

</bean>

web.xml内容为

<!-- 配置struts2的过滤器 -->

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

<!-- 处理forward request请求 -->

<dispatcher>FORWARD</dispatcher>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

<!-- 配置Spring中的监听器 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!--配置默认路径 -->

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

struts.xml内容为:

<struts>

<!--利用Spring对Action托管  -->

<constant name="struts.objectFactory" value="spring"/>

<!-- 配置struts2.0

其中package中name属性是package的唯一标示,

    -->

<package name="default" namespace="/" extends="struts-default">

<!-- 配置action -->

<action name="user" class="userAction">

<!-- 配置转移路径 -->

<result name="success">WEB-INF/page/user.jsp</result>

<result name="error">WEB-INF/page/error.jsp</result>

</action>

</package>

</struts>

UserAction.java

package com.yang.ssh.action;

import com.opensymphony.xwork2.ActionSupport;

import com.yang.ssh.bean.User;

import com.yang.ssh.dao.UserDao;

import com.yang.ssh.dao.UserDaoImpl;

public class UserAction extends ActionSupport {

/**

*

*/

private static final long serialVersionUID = 1L;

private UserDao userDao;

private User user;

public User getUser() {

return user;

}

public void setUser(User user) {

this.user = user;

}

public void setUserDao(UserDaoImpl userDao) {

this.userDao= userDao;

}

public String execute() {

try {

user = new User();

user.setAddress("深圳");

user.setAge(24);

user.setSex("男");

user.setUserName("michaelyang");

userDao.addUser(user);

return "success";

} catch (Exception e) {

System.out.println(e.getMessage());

return "error";

}

}

}

UserDaoImpl.java为:
package com.yang.ssh.dao;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.yang.ssh.bean.User;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao{
public void addUser(User user) {
this.getHibernateTemplate().save(user);
}
}
問題解決方案:

我在UserAction.java 中導入的時候為


public void setUserDao(UserDaoImpl userDao) {

this.userDao= userDao;

}


把它改為UserDao 就OK了

心得:對于通過接口注入理解不清楚!


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ybinwei/archive/2010/08/07/5794840.aspx
分享到:
评论

相关推荐

    SSH整合Jar包

    SSH整合在JavaWeb开发中是一项重要的技术组合,它包含了三个主要的开源框架:Spring、Struts和Hibernate。这些框架分别负责应用的业务逻辑管理、视图层控制和数据持久化。接下来,我们将深入探讨SSH整合的关键知识点...

    SSH整合jar包

    SSH整合jar包是一个集合了所有在Java开发中用于Spring、Struts和Hibernate(SSH)集成应用所需的库文件的压缩包。SSH是Java企业级开发中非常流行的一种框架组合,它能够帮助开发者快速构建高效、可维护的企业级Web...

    ssh整合jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的MVC(Model-View-Controller)架构。在这个"ssh整合jar包"中,包含了这三个框架的核心库和其他必要的...

    ssh整合所需要的jar包

    SSH整合,全称为Struts2、Spring和Hibernate的整合,是Java Web开发中常见的技术栈。这三种框架分别负责表现层、业务层和持久层的管理,通过合理的整合,可以构建出高效、灵活且易于维护的Web应用。下面将详细介绍...

    ssh整合所需所有架包

    SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...

    SSH整合增删改查全部

    SSH整合是Java Web开发中常见的一个技术组合,指的是Spring、Struts和Hibernate三个开源框架的集成。Spring提供了依赖注入和面向切面编程的能力,Struts则处理MVC(Model-View-Controller)架构中的控制器部分,而...

    SSH整合经典实例

    SSH整合经典实例主要涉及到的是Java开发中的三大框架:Spring、Struts和Hibernate的集成应用,这些框架在J2EE体系中被广泛使用,为开发者提供了高效、便捷的开发环境。SSH整合是Java企业级开发中一种常见的解决方案...

    SSH整合 银行管理系统

    SSH整合在IT行业中通常指的是Struts、Hibernate和Spring三大框架的集成应用,它们是Java Web开发中的重要组件,尤其在企业级应用系统中广泛应用。银行管理系统是一个典型的业务复杂、安全性要求高的应用场景,SSH...

    SSH整合的jar包.zip

    SSH整合是指Spring、Struts和Hibernate这三大开源框架的集成应用。这三种框架分别负责不同的职责:Spring作为应用的管理核心,提供依赖注入(DI)和面向切面编程(AOP);Struts则主要处理MVC(模型-视图-控制器)...

    SSH整合的一个案例

    SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...

    SSH整合例子(SSH例子)

    SSH整合是Java开发中一种常见的框架组合,包括Spring、Struts和Hibernate三个核心组件。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts负责MVC模式的实现,而Hibernate则是用于对象关系映射(ORM)。在这...

    SSH整合小案例,实用性比较强

    SSH整合是软件开发中一种常见的技术实践,主要指的是Spring、Struts和Hibernate这三大开源框架的集成应用。这个小案例提供了SSH整合的具体实现,对于项目研发具有很高的实用价值。下面我们将详细探讨SSH整合的关键...

    ssh整合所需jar包

    SSH整合是指将Struts、Spring和Hibernate这三个Java开源框架结合在一起,用于构建高效、可维护的企业级Web应用程序。Struts提供了MVC(Model-View-Controller)架构,Spring强化了依赖注入和事务管理,而Hibernate则...

    SSH整合小项目

    SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...

    SSH整合实例源码

    SSH整合是Java Web开发中的一个常见实践,它指的是Struts 2、Hibernate和Spring这三大框架的集成。这个"SSH整合实例源码"提供了一种实际应用这些框架的方法,帮助开发者理解如何在项目中有效地结合它们。以下是关于...

    ssh整合 jar包

    SSH整合是指在Java Web开发中,将Spring、Struts2和Hibernate这三大开源框架进行集成,以实现高效、灵活和可扩展的业务应用。这些框架分别负责不同的职责:Spring作为核心容器,管理对象的依赖注入;Struts2是MVC...

    SSH整合原理以及步骤详解

    SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...

Global site tag (gtag.js) - Google Analytics