我正在使用 spring 4 和休眠 4,我已经展示了我的配置文件和库,但得到不满意的依赖异常



缺少哪个 jar 文件:

org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为"myHomeController"的 Bean 时出错:不满意 通过字段"scm_service"表示的依赖关系;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为"scmServiceImpl"的 Bean 时出错:未满足的依赖项 通过"SCMDAO"字段表达;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为"scmDaoImpl"的 bean 时出错:未满足依赖项 通过字段"会话工厂"表示;嵌套异常是 org.springframework.beans.factory.BeanCreationException: Error 创建在 ServletContext 中定义的名称为 'sessionFactory' 的 bean resource [/WEB-INF/dispatcher-servlet.xml]:初始化方法的调用 失败;嵌套异常是java.lang.UnsupportedClassVersionError: javax/transaction/SystemException : un受支持的 major.minor version 51.0 (无法加载类 javax.transaction.SystemException) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) 在 org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) 在 org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) 在 org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) 在 org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) 在 org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) 在 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171) at javax.servlet.GenericServlet.init(GenericServlet.java:158) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5266) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5554) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(未知来源) 由以下原因引起: org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为"scmServiceImpl"的 Bean 时出错:未满足的依赖项 通过"SCMDAO"字段表达;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为"scmDaoImpl"的 bean 时出错:未满足依赖项 通过字段"会话工厂"表示;嵌套异常是org.springframework.beans.factory.BeanCreationException: Error 创建在 ServletContext 中定义的名称为 'sessionFactory' 的 bean resource [/WEB-INF/dispatcher-servlet.xml]:初始化方法的调用 失败;嵌套异常是java.lang.UnsupportedClassVersionError: javax/transaction/SystemException : un受支持的 major.minor version 51.0 (无法加载类 javax.transaction.SystemException) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) 在 org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) 在 org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (DependencyDescriptor.java:208) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ...还有 32 个

我的库里有这些罐子

jboss-logging-3.1.1.GA.jar
activation-1.0.2.jar
antlr-2.7.7.jar
aopalliance-repackaged-2.4.0-b06.jar
apache-logging-log4j.jar
commons-beanutils-1.7.0.jar
commons-collections-3.2.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.0.1.Final.jar
hibernate-entitymanager-4.0.1.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
javassist-3.4.GA.jar
javax.transaction-api-1.2.jar
jstl-1.2.jar
jta-1.1.jar
postgresql-8.4-701.jdbc3.jar
spring-aop-4.3.9.RELEASE.jar
spring-aspects-4.3.9.RELEASE.jar
spring-beans-4.3.9.RELEASE.jar
spring-context-4.3.9.RELEASE.jar
spring-core-4.3.9.RELEASE.jar
spring-expression-4.3.9.RELEASE.jar
spring-jdbc-4.3.9.RELEASE.jar
spring-orm-4.3.9.RELEASE.jar
spring-tx-4.3.9.RELEASE.jar
spring-web-4.3.9.RELEASE.jar
spring-webmvc-4.3.9.RELEASE.jar

我的调度程序 Servlet.xml 文件是:

<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<mvc:annotation-driven /> 
<context:component-scan base-package="com.scm" />
<context:annotation-config />
<tx:annotation-driven transaction-manager="hibernateTransactionManager" /> 
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5433/SCM1" />
<property name="username" value="postgres" />
<property name="password" value="postgres123"/>
</bean> 

<bean id="sessionFactory" 
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />    
<property name="annotatedClasses">
<list>
<value>com.scm.Pojo.Req_Vcmd_Inter_Dist_Mas</value>
<value>com.scm.Pojo.Req_Vcmd_Inter_Dist_Det</value>           
</list>
</property>     
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect
</prop>
<prop key="hibernate.validator.apply_to_ddl">false</prop>
<prop key="hibernate.validator.autoregister_listeners"> 
false</prop> 
<prop key="hibernate.show_sql"> false   </prop> 
</props>
</property>
</bean>
<bean id="hibernateTransactionManager" 
class="org.springframework.orm.hibernate4.HibernateTransactionManager" >
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>

我的实现类是

@Service
public class scmServiceImpl implements scmService {

@Autowired
private scmDao scmdao;
public scmDao getScmdao() {
return scmdao;
}
public void setScmdao(scmDao scmdao) {
this.scmdao = scmdao;
}
@Override
public List<Users> getUser(String username) {   
return scmdao.getUser(username);
}
}

控制器是 :

import com.scm.Beans.Users;
import com.scm.Service.scmService;

@Controller
public class myHomeController {
@Autowired
private scmService scm_service;
public scmService getScm_service() {
return scm_service;
}
public void setScm_service(scmService scm_service) {
this.scm_service = scm_service;
}

HttpSession session;
public HttpSession getSession() {
return session;
}
public void setSession(HttpSession session) {
this.session = session;
}
}

信息非常明确:

java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger

您错过了jboss-logging.jar.我建议使用像Maven或Gradle这样的依赖管理系统来避免此类错误。

访问此链接:https://start.spring.io 并创建基本应用程序,包括您必须需要的所有依赖项。

相关内容

最新更新