关于spring加载IBAITS出现错误问题

问题描述

本人部署spring+ibatis时候启动web 出现如下错误信息严重: StandardWrapper.Throwableorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in ServletContext resource [/WEB-INF/configfiles/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com/ibatis/common/xml/NodeletException[b][/b]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)at java.security.AccessController.doPrivileged(Native Method)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:81)at javax.servlet.GenericServlet.init(GenericServlet.java:212)at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)at org.apache.catalina.core.StandardService.start(StandardService.java:525)at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)at org.apache.catalina.startup.Catalina.start(Catalina.java:595)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:289)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)Caused by: java.lang.NoClassDefFoundError: com/ibatis/common/xml/NodeletExceptionat java.lang.Class.getDeclaredConstructors0(Native Method)at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)at java.lang.Class.getConstructor0(Class.java:2699)at java.lang.Class.getDeclaredConstructor(Class.java:1985)at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)... 34 moreCaused by: java.lang.ClassNotFoundException: com.ibatis.common.xml.NodeletExceptionat java.net.URLClassLoader$1.run(URLClassLoader.java:200)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:188)at java.lang.ClassLoader.loadClass(ClassLoader.java:307)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)at java.lang.ClassLoader.loadClass(ClassLoader.java:252)at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)... 40 more2011-9-5 15:28:06 org.apache.catalina.core.StandardContext loadOnStartup严重: Servlet /SpringAndIbatis threw load() exceptionjava.lang.ClassNotFoundException: com.ibatis.common.xml.NodeletExceptionat java.net.URLClassLoader$1.run(URLClassLoader.java:200)----------------------------------------------------------------------------------------上面的错误爆出:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in ServletContext resource [/WEB-INF/configfiles/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com/ibatis/common/xml/NodeletException这个错误我看了一下是说找不到java.lang.NoClassDefFoundError: com/ibatis/common/xml/NodeletException这个类,但是我已经把ibaits的jar包已经加入到classpath中去了问什么还会出现这个错误呢有所不解,请大家帮忙看一下有没有这个现象。--------------------------------------------------------------------------------------------------------------我的spring配置文件如下:<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--此bean告诉Spring去哪找数据库的配置信息,因为有此Bean才出现下面用${}标记来取变量的语句 --><bean id="propertyConfig"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location"><value>/WEB-INF/configfiles/jdbc.properties</value></property></bean><!--配置一个数据源,根据上面propertyConfig指定的location去找数据库连接的配置信息 --><bean id="dataSource"class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"><property name="driverClass"><value>${jdbc.driverClassName}</value></property><property name="jdbcUrl"><value>${jdbc.url}</value></property><property name="username"><value>${jdbc.username}</value></property><property name="password"><value>${jdbc.password}</value></property><property name="idleConnectionTestPeriod" ><value>${jdbc.onnectionTestPeriod}</value></property><property name="idleMaxAge" ><value>${jdbc.maxAge}</value></property><property name="maxConnectionsPerPartition" ><value>${jdbc.maxConnectionsPerPartition}</value></property><property name="minConnectionsPerPartition" ><value>${jdbc.minConnectionsPerPartition}</value></property><property name="partitionCount" ><value>${jdbc.partitionCount}</value></property><property name="acquireIncrement" ><value>${jdbc.acquireIncrement}</value></property><property name="statementCacheSize" ><value>${jdbc.statementCacheSize}</value></property><property name="releaseHelperThreads"><value>${jdbc.releaseHelperThreads}</value></property></bean><!--根据dataSource和configLocation创建一个SqlMapClient --><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation"><value>classpath:/WEB-INF/configfiles/SqlMapConfig.xml</value></property><property name="dataSource"><ref bean="dataSource" /></property></bean><!--根据sqlMapClien创建一个SqlMapClient模版类 --><bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate"><property name="sqlMapClient"><ref bean="sqlMapClient" /></property></bean></beans>-----------------------------------------------------------ibatis配置文件如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig> <sqlMap resource="/WEB-INF/configfiles/AlarmRecord.xml"/> <sqlMap resource="/WEB-INF/configfiles/RecordValuesData.xml"/></sqlMapConfig> 问题补充:Wind_ZhongGang 写道

解决方案

重新构建一下呢?
解决方案二:
把<param-value>/WEB-INF/configfiles/applicationContext.xml</param-value> 改为<param-value>classpath*:configfiles/applicationContext.xml</param-value> 试试看或者直接<param-value>classpath*:configfiles/*.xml</param-value> 检查你的classpath的根路径
解决方案三:
你用的Spring的版本?初始化的代码也贴出来。参考一下: //这个会报错ApplicationContext ctx=new FileSystemXmlApplicationContext("conf/applicationContext.xml");//用这个ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"classpath*:conf/applicationContext.xml"});
解决方案四:
如果如你所说,那你能搜索到NodeletException这个类吗?
解决方案五:
检查发现你没有导入这个包ibatis-common。<dependency> <groupId>com.ibatis</groupId> <artifactId>ibatis-common</artifactId> <version>2.1.0.565</version> </dependency>
解决方案六:
<dependency> <groupId>org.apache.ibatis</groupId> <artifactId>ibatis-core</artifactId> <version>3.0</version> </dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-ibatis</artifactId> <version>2.0.8</version> </dependency>看看有这两个包没有。

时间: 2024-07-31 00:50:36

关于spring加载IBAITS出现错误问题的相关文章

Spring加载properties文件的两种方式

版权声明:尊重博主原创文章,转载请注明出处哦~http://blog.csdn.net/eson_15/article/details/51365707 目录(?)[+]         在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在spring中也可以这么做,而且Spring有两种加载properties文件

Spring加载配置文件

        最近在看<Spring3.0就这么简单>这本书,开发环境为IDEA+Maven,今儿写代码时,Spring加载配置文件总是失败,相当郁闷,不过还是解决了. 最初的写法是 Resource res=new ClassPathResource("classpath:com/smart/beanfactory/beans.xml"); 或者 ApplicationContext factory = new ClassPathXmlApplicationContex

spring加载完xml怎么使用

问题描述 现在有一堆参数,有中文开始打算用properties,但是发现他对中文支持不够好.转而采用xml开始搜索加载xml结果都是spring加载xml的方法,讲述了好几种不同的方法但是我没找到后续,也就是加载完以后该怎么操作xml结构如下<?xml version="1.0" encoding="UTF-8"?><send><url>http://106.ihuyi.com/webservice/sms.php?method=

Spring加载properties文件的方法_java

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式. 下面分别讨论下这两种方式.1. 通过xml方式加载properties文件        我们以Spring实例化dataSource为例,我们一般

spring入门(3) spring加载配置web

Spring初始化容器.三种经常用到的实现: 一.ClassPathXmlApplicationContext:从类路径中加载. 二 .FileSystemXmlApplicationContext:从文件系统加载. 三.XmlWebApplicationContext:从web系统中加载. 使用1.bean工厂:最简单的容器,提供了基础的依赖注入支持.创建各种类型的Bean. BeanFactory factory = null ; //声明 ClassPathResource resourc

请教一个关于spring加载properties的问题。

问题描述 我在spring配置中配置了 PropertyPlaceholderConfigurer <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>

spring: 加载远程配置

通常在spring应用中,配置中的properties文件,都是打包在war包里的,部署规模较小,只有几台服务器时,这样并没有什么大问题.如果服务器多了,特别是集群部署时,如果要修改某一项配置,得重新打包.部署,一台台机器改过去,十分麻烦.   看了Spring-Cloud项目,深受启发,Spring-Cloud把配置文件放在远程的git或svn这类云平台之上,所有应用启动时从云上获取配置,配置需要修改时,直接修改git上的配置即可,十分方便,但是这个项目并不简单,新概念太多,需要一定时间熟悉.

thinkphp 第一次创建项目无法加载模块的错误解决办法

第一次创建thinkphp后运行项目出现下面的错误: <h1>无法加载模块:Index</h1> <div class="content">     <div class="info">         <div class="title">             <h3>错误位置</h3>         </div>         <di

Spring Boot 自动加载指定包下的拦截器

Spring Boot 在我们需要对程序添加拦截器需要使用 WebMvcConfigurerAdapter 中的 addInterceptors方法去注册拦截器,这样我们如果在程序里面有多个拦截或者我们在项目结构为maven 关系存在父子级关系时候.WebMvcConfigurerAdapter 类我们写在父类 这样就无法获取到子类存在哪些拦截器了.这个我们就需要在父级和子级都写对应的 WebMvcConfigurerAdapter 方法.这里我根据前面我的一篇博客为 获取某个包下面的所有类来实