Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌套异常为java.lang.NoClassDefFoundError:无法初始化类org.springframework.jdbc.support.SQLErrorCodesFactory_Java_Spring_Spring Mvc - Fatal编程技术网

嵌套异常为java.lang.NoClassDefFoundError:无法初始化类org.springframework.jdbc.support.SQLErrorCodesFactory

嵌套异常为java.lang.NoClassDefFoundError:无法初始化类org.springframework.jdbc.support.SQLErrorCodesFactory,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在用spring和jdbctemplate编写一个应用程序。但是,我遇到了以下错误: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.springframework.jdbc.support.SQLErrorCodes

我正在用spring和jdbctemplate编写一个应用程序。但是,我遇到了以下错误:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.springframework.jdbc.support.SQLErrorCodesFactory
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:972)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
根本原因:

java.lang.NoClassDefFoundError: Could not initialize class org.springframework.jdbc.support.SQLErrorCodesFactory
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:89)
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.<init>(SQLErrorCodeSQLExceptionTranslator.java:78)
org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:58)
org.springframework.jdbc.support.JdbcAccessor.afterPropertiesSet(JdbcAccessor.java:71)
org.springframework.jdbc.core.JdbcTemplate.<init>(JdbcTemplate.java:115)
com.metmi.mmasgis.dao.DbImpl.getDatabases(DbImpl.java:29)
com.metmi.mmasgis.HomeController.dbs(HomeController.java:61)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
java.lang.NoClassDefFoundError:无法初始化类org.springframework.jdbc.support.SQLErrorCodesFactory
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:89)
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator。(SQLErrorCodeSQLExceptionTranslator.java:78)
org.springframework.jdbc.support.jdbccessor.getExceptionTranslator(jdbccessor.java:58)
org.springframework.jdbc.support.jdbccessor.AfterPropertieSet(jdbccessor.java:71)
JdbcTemplate.(JdbcTemplate.java:115)
metmi.mmasgis.dao.DbImpl.getDatabases(DbImpl.java:29)
com.metmi.mmasgis.HomeController.dbs(HomeController.java:61)
sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javaservlet.http.HttpServlet.service(HttpServlet.java:621)
javaservlet.http.HttpServlet.service(HttpServlet.java:728)
这是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“>


上下文配置位置
/WEB-INF/spring/root-context.xml
org.springframework.web.context.ContextLoaderListener
appServlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/spring/appServlet/servlet-context.xml
1.
appServlet
/

my root-context.xml:

<?xml version="1.0" encoding="UTF-8"?>

http://www.springframework.org/schema/beans/spring-beans.xsd“>



有什么问题吗?

缺少必需的jar,因此您必须下载必需的jar,然后设置类路径
类路径中缺少Spring JDBC jar文件(主要在WEB-INF/lib下)


请参阅以获得清晰的理解

当直接从文档中抛出
NoClassDefFoundError

如果Java虚拟机或ClassLoader实例尝试加载类的定义(作为普通方法调用的一部分或使用新表达式创建新实例的一部分),但找不到该类的定义,则引发。 编译当前执行的类时,已存在搜索的类定义,但无法再找到该定义

在您的例子中,就是这个类
org.springframework.jdbc.support.SQLErrorCodesFactory
。因此,我们需要在类加载期间通过提供包含此类的.jar文件将此类提供给类加载器或JVM。您正在使用SpringJDBCAPI。因此,您需要将这个jar
org.springframework.jdbc-X.X.X.RELEASE
添加到类路径中。这个jar文件可以从下载。我已经给出了3.0.5版本的下载链接。请将其更改为所需版本。如果您使用Maven作为构建工具,您可以将其作为依赖项添加到项目的
POM
文件中,如下所示

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>org.springframework.jdbc</artifactId>
  <version>3.0.5.RELEASE</version>
</dependency>

org.springframework
org.springframework.jdbc
3.0.5.1发布

希望您能清楚地理解,以解决此错误。

如果我的答案有帮助,您可以选择我的答案answer@arpho我的回答有用吗?酷。回答得好buddy@smilyface非常感谢。谢谢我按照你的建议做了,现在我明白了:消息处理程序处理失败;嵌套的异常是java.lang.NoSuchMethodError:org.springframework.beans.factory.ListableBeanFactory.getBeanDefinitionNames(Ljava/lang/Class;)[Ljava/lang/String;可能有多个jar具有相同的名称(spring).所以你删除了所有的spring jar,只把最新版本的jar放在我的pom中的maven依赖项I have spring jdbc:1.0-m4上,对吗?签出这个链接
<!-- Root Context: defines shared resources visible to all other web components -->


<bean id="dataSource" name="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="username" value="root"></property>
    <property name="password" value="abc"></property>
    <property name="url"
        value="jdbc::mysql://localhost:3306/mmasgis">
    </property>
</bean>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>org.springframework.jdbc</artifactId>
  <version>3.0.5.RELEASE</version>
</dependency>