Error creating bean with name 'userDao': Unsatisfied dependency expressed throug
报错如下:
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框架,望大神指点迷津。