struts2+spring3+mybatis3配置报错,求大侠帮忙啊

a-shitou 2012-03-08 11:08:59
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in file [D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyStrutsTest\WEB-INF\classes\applicationContext-daos.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.hoo.dao.impl.UserDao]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.hoo.dao.impl.UserDao.<init>()
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:965)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:911)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.hoo.dao.impl.UserDao]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.hoo.dao.impl.UserDao.<init>()
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:70)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:958)
... 28 more
Caused by: java.lang.NoSuchMethodException: com.hoo.dao.impl.UserDao.<init>()
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getDeclaredConstructor(Class.java:1985)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:65)
... 29 more
2012-3-8 11:08:04 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: 'webapp.root' = [D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyStrutsTest\]
2012-3-8 11:08:04 org.apache.catalina.core.ApplicationContext log
信息: Initializing log4j from [D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyStrutsTest\WEB-INF\log4j.properties]
2012-3-8 11:08:04 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2012-3-8 11:08:04 org.apache.catalina.core.StandardContext start
严重: Context [/MyStrutsTest] startup failed due to previous errors
2012-3-8 11:08:04 org.apache.catalina.core.ApplicationContext log
信息: Shutting down log4j
2012-3-8 11:08:04 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2012-3-8 11:08:04 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2012-3-8 11:08:04 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2012-3-8 11:08:04 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/62 config=null
2012-3-8 11:08:04 org.apache.catalina.startup.Catalina start
信息: Server startup in 4662 ms
...全文
181 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vemacitri 2012-03-23
  • 打赏
  • 举报
回复
楼上的哥们,我也这个问题,不过我是扫描注解的方式注入的,@Inject注入的话,在启动就报错,跟你一样,你最后是怎么改的?包括xml,和代码,能都贴出来么?搞了2天了,头疼,谢谢啊
a-shitou 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 iisgirl 的回复:]
你在配置文件中,明明用的

<bean id="userDao" class="com.hoo.dao.impl.UserDao">
<property name="sessionFactory" ref="sqlSessionFactory" />
</bean>
這個是setter注入,但是在UserDao中卻是
public UserDao(SqlSessionFactory……
[/Quote]
谢啦大侠,刚刚学这个,按照你说的改啦,现在不报错啦,还不知道配置的对不对
昨日凡阳 2012-03-08
  • 打赏
  • 举报
回复
你在配置文件中,明明用的

<bean id="userDao" class="com.hoo.dao.impl.UserDao">
<property name="sessionFactory" ref="sqlSessionFactory" />
</bean>
這個是setter注入,但是在UserDao中卻是
public UserDao(SqlSessionFactory sqlSessionFactory) {
super(sqlSessionFactory);
// TODO Auto-generated constructor stub
}

構造器注入,怎麽可能注入進去呢?

要麽改配置文件從setter改為constructor,要麽改

UserDao得注入方式為setter。
a-shitou 2012-03-08
  • 打赏
  • 举报
回复
看的出是什么错吗,
a-shitou 2012-03-08
  • 打赏
  • 举报
回复
public class UserDao extends SqlSessionTemplate implements IUserDao {

// public Integer deleteById(Integer userId) {
// dao.setMapperClass(UserMapper.class);
// user.setUserId(userId);
// try {
// dao.remove(user);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// return 1;
// }

public UserDao(SqlSessionFactory sqlSessionFactory) {
super(sqlSessionFactory);
// TODO Auto-generated constructor stub
}

public int findByCount(Page page) {
return (Integer) this.selectOne("User.findByCount", page);
}
public List findByPage(Page page) {
List list = null;
return list;
}

//public Object saveUser(User user) {
// return getSqlMapClientTemplate().insert("User.save", user);
//}

public Integer update(User user) throws Exception {
return 1;
}

public User login(User user) {
return user;
}

public List findByExample(User user) {
return (List) user;
}

@Override
public Object saveUser(User user) {
// TODO Auto-generated method stub
return null;
}

@Override
public Integer deleteById(Integer userId) {
// TODO Auto-generated method stub
return null;
}

}
raoxunrong 2012-03-08
  • 打赏
  • 举报
回复
把dao的配置文件弄出来看看,同时把userDao的实现也贴出来。
a-shitou 2012-03-08
  • 打赏
  • 举报
回复
<?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.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!--
<bean id="userDao" class="com.hoo.dao.impl.UserDao">
<property name="sessionFactory" ref="sqlSessionFactory" />
</bean>
-->
<!-- 通过扫描的模式,扫描目录在com/hoo/mapper目录下,所有的mapper都继承SqlMapper接口的接口, 这样一个bean就可以了
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.hoo.mapper"/>
<property name="markerInterface" value="com.hoo.mapper.SqlMapper"/>
</bean>
org.mybatis.spring.mapper.MapperFactoryBean
-->
<bean id="userDao" class="com.hoo.dao.impl.UserDao">
<property name="sessionFactory" ref="sqlSessionFactory" />
</bean>
</beans>
就配置这么一个dao啊第一次
caolang1017 2012-03-08
  • 打赏
  • 举报
回复
你的“userDao”应该配置有问题,把你的applicationContext-daos.xml配置文件晒出来看看?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧