Error creating bean with name 'userDao': Unsatisfied dependency expressed throug

要奋斗的csdn 2016-12-30 05:27:28
报错如下:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userDao': Unsatisfied dependency expressed through field 'sessionFactory0': Error creating bean with name 'sessionFactory0' defined in URL [file:/F:/JAVAWORKFILE/J2EEWORK/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/java1505.ssh57/WEB-INF/classes/spring.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory0' defined in URL [file:/F:/JAVAWORKFILE/J2EEWORK/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/java1505.ssh57/WEB-INF/classes/spring.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:569)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:776)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)






配置文件如下:
<context:component-scan base-package="com.ssh.*"></context:component-scan>
<!--注解扫描 -->
<context:component-scan base-package="org.swinglife.controller"></context:component-scan>
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>


<bean id="dataSource0" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:XE" />
<property name="username" value="java1511" />
<property name="password" value="java1511" />
</bean>
<bean id="sessionFactory0"
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource0" />
<property name="mappingResources">
<list>
<value>hbm/SmUser.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
hibernate.show_sql=true
hibernate.max_fetch_depth=3
hibernate.hbm2ddl.auto=update
</value>
</property>
</bean>


<bean id="txm"
class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory0" />
</bean>

<tx:annotation-driven transaction-manager="txm"/>







java代码Service块:
package com.ssh.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ssh.common.SshConstants;
import com.ssh.dao.IUserDao;
import com.ssh.model.UserModel;
import com.ssh.pojo.UserPojo;
import com.ssh.service.IUserService;

@Service("userService")
public class UserService implements IUserService {

@Autowired
@Resource
private IUserDao userDao;

@Override
@Transactional
public List<UserModel> queryUser(String name) {

List<UserPojo> ret = userDao.queryUser(name);

List<UserModel> ret0 = new ArrayList<UserModel>();
for (int i = 0; ret!=null && i < ret.size(); i++) {
UserModel m = new UserModel();
UserPojo p = ret.get(i);

// m.setId(p.getId());
// m.setName(p.getName());
// m.setType(p.getType());
BeanUtils.copyProperties(p, m);

m.setTypeName(SshConstants.USER_TYPE_NAME[p.getType()]);


ret0.add(m);
}

return ret0;
}

}








java代码Dao块:

package com.ssh.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;

import com.ssh.dao.IUserDao;
import com.ssh.pojo.UserPojo;


@Repository("userDao")
@Qualifier("userDao")
public class UserDao implements IUserDao {

@Autowired

private SessionFactory sessionFactory0;


public SessionFactory getSessionFactory0() {
return sessionFactory0;
}

public void setSessionFactory0(SessionFactory sessionFactory0) {
this.sessionFactory0 = sessionFactory0;
}

@Override
public List<UserPojo> queryUser(String nameLike) {

Session s = sessionFactory0.getCurrentSession();

List list = s.createQuery("from UserPojo").list();

return list;
}

}

本人小菜鸟初学ssh框架,望大神指点迷津。
...全文
2830 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
双子叶 2016-12-31
  • 打赏
  • 举报
回复
1.UserService中: @Autowired @Resource private IUserDao userDao; 这个注解有点重复,应该不会影响注入,为了保险还是先将@Resource去掉吧。 2.UserDao中 @Autowired private SessionFactory sessionFactory0; 这段代码是有问题的,autowired是根据类型来注入的,而配置文件中的sessionFactory的类型是LocalSessionFactoryBean,与SessionFactory这个类没有直接的上下关系。 你将@Autowired缓存@Resource(name="sessionFactory0") 你试试吧,我想应该是这个错误。不确定
游语 2016-12-31
  • 打赏
  • 举报
回复
一般搭框架报的错都是依赖包出了问题。不过没看出来你的问题,离成神还有很远,大家一起加油

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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