0 0

myBatis3.0.6+Spring3.0.6框架整合3

今天从网上自学搭建springMVC+myBatis框架,根据文档一步一步的整合报如下错误
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/classes/ApplicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/main/java/com/myBatis/MyBatis_contextConfig.xml]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/main/java/com/myBatis/MyBatis_contextConfig.xml]
	at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117)
	at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:286)
	at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:268)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
	... 36 more
2012-2-7 15:11:59 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/classes/ApplicationContext.xml]: Invocation of init method failed; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/main/java/com/myBatis/MyBatis_contextConfig.xml]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/main/java/com/myBatis/MyBatis_contextConfig.xml]
	at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117)
	at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:286)
	at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:268)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
	... 36 more
2012-2-7 15:11:59 org.apache.catalina.core.StandardContext start

找不到MyBatis_contextConfig.xml文件。编译过后的MyBatis_contextConfig.xml在WEB-INF/classes/目录下。路径我也些了但是还报错。
以下是spring配置文件
<?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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<!-- spring配置文件 -->
	<!--读取connectJDBC.properties文件所在的位置 -->
	<bean
		class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
		<property name="locations"
			value="WEB-INF/classes/connectJDBC.properties">
		</property>
	</bean>
	<!-- 读取connectJDBC.properties文件,配置数据源 -->
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${jdbc_driver}"></property>
		<property name="url" value="${jdbc_url}"></property>
		<property name="username" value="${jdbc_userName}"></property>
		<property name="password" value="${jdbc_passWord}"></property>
		<!-- 数据库连接池配置 -->
	</bean>
	<!-- 这个地方开始放置所有bean的配置信息 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="main/java/com/myBatis/MyBatis_contextConfig.xml"></property>
		<property name="dataSource" ref="dataSource"></property>
	</bean>
</beans>

以下是MyBatis 和mapper配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"  
	"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 为类起个别名 -->
	<typeAliases>
		<typeAlias alias="TestTableEntity"
			type="main.java.com.entity.TestTable" />
	</typeAliases>
	<!-- 加载myBatis中实体类的sql映射语句文件 -->
	<mappers>
		<mapper resource="main/java/com/mapper/TestTableMapper.xml" />
	</mappers>
</configuration> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<!--namespace的作用是为这张表取一个名字-->
<mapper namespace="main.java.com.dao.ITestTableMapper">
<!-- 数据库映射 -->
<resultMap type="TestTableEntity" id="testtable">
	<id column="id" property="id"/>
	<result column="name" property="name" />
</resultMap>
<!-- sql 操作语句 -->
<!-- 添加一条心记录 -->
<insert id="doInsert" parameterType="TestTable">
	insert into testtable(name) value(#{name})
</insert>
</mapper>

三个配置文件都在上面。请各位帮忙看看那里出错了。早上弄了一早上都没弄好。头疼的。

问题补充:
myali88 写道
看你的路径应该是采用了maven项目的目录结构,这样的话web项目运行时不应该还依赖于源代码的目录,spring里面的路径一般采用classpath路径,mybaits的配置也是的。

maven项目??不太明白。我就是在网上找的springMVC+Mybatis框架整合文档一步一步整合的。配置文件都是手写的 。java环境变量我也没有配置在本机上。搭建ssh框架都是可以的。

问题补充:
myali88 写道
你的项目的目录结构截个图上来看看。
应该是
<property name="configLocation" value="main/java/com/myBatis/MyBatis_contextConfig.xml"></property>  

这个的文件路径指定错误,这种写法的话,应用将会从webapp的根目录开始查找指定文件,也就是从WEB-INF所在的目录下查找“main/java/com/myBatis/MyBatis_contextConfig.xml”,你可以看看你的目录情况。

我吧项目的目录结构截图了你看看。还有我之前也试过用/WEB-INF/classes/main/java/com/myBatis/MyBatis_contextConfig.xml这样也包错了。

问题补充:
myali88 写道
图片中看不到你的MyBatis_contextConfig.xml文件在哪里?这个是关键。
引用

还有我之前也试过用/WEB-INF/classes/main/java/com/myBatis/MyBatis_contextConfig.xml这样也包错了。

如果你把配置文件放在这里的话,那spring里面的配置应该改成:
    <property name="configLocation" value="classpath:main/java/com/myBatis/MyBatis_contextConfig.xml"></property>    

注意,通过“classpath”前缀指定路径从classpath开始查找。
如果保留目前的配置,那么你的“WebRoot”目录下应该有“main/java/com/myBatis/MyBatis_contextConfig.xml”这样的目录和文件。

恩。谢谢你的讲解弄好了。非常感谢。
2012年2月07日 15:16
  • 大小: 17.8 KB

3个答案 按时间排序 按投票排序

0 0

采纳的答案

图片中看不到你的MyBatis_contextConfig.xml文件在哪里?这个是关键。

引用

还有我之前也试过用/WEB-INF/classes/main/java/com/myBatis/MyBatis_contextConfig.xml这样也包错了。

如果你把配置文件放在这里的话,那spring里面的配置应该改成:
    <property name="configLocation" value="classpath:main/java/com/myBatis/MyBatis_contextConfig.xml"></property>    

注意,通过“classpath”前缀指定路径从classpath开始查找。
如果保留目前的配置,那么你的“WebRoot”目录下应该有“main/java/com/myBatis/MyBatis_contextConfig.xml”这样的目录和文件。

2012年2月08日 17:33
0 0

你的项目的目录结构截个图上来看看。
应该是

<property name="configLocation" value="main/java/com/myBatis/MyBatis_contextConfig.xml"></property>  

这个的文件路径指定错误,这种写法的话,应用将会从webapp的根目录开始查找指定文件,也就是从WEB-INF所在的目录下查找“main/java/com/myBatis/MyBatis_contextConfig.xml”,你可以看看你的目录情况。

2012年2月08日 17:11
0 0

看你的路径应该是采用了maven项目的目录结构,这样的话web项目运行时不应该还依赖于源代码的目录,spring里面的路径一般采用classpath路径,mybaits的配置也是的。

2012年2月08日 13:29

相关推荐

    Spring3.0.6 +mybatis 3.0.6配置文档

    Spring3.0.6 +mybatis 3.0.6配置文档

    完整mybatis3.0.6与spring3.0整合例子

    MyBatis 3.0.6 是一个流行的Java持久层框架,它简化了与数据库的交互,而Spring 3.0则是一个全面的企业级应用框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能。将这两个框架整合在一起可以实现更高效、...

    mybatis 3.0.6 all + 中文指导手册

    7. **事务管理**:MyBatis支持编程式和声明式的事务控制,手册会展示如何在Spring等框架中集成MyBatis进行事务管理。 8. **缓存机制**:MyBatis提供了一级缓存和二级缓存,有助于提高性能,手册会讲述如何配置和...

    Spring+mybatis环境搭建

    * org.springframework.aspects-3.0.6.RELEASE:提供了对 AspectJ 框架的整合 * org.springframework.beans-3.0.6.RELEASE:提供了 IoC(依赖注入)的基础实现 * org.springframework.context.support-3.0.6.RELEASE...

    mybatis-3.0.6-官方资料

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使你更好地将关注点集中在你的应用程序上。通过提供一个...

    mybatis-3.0.6.jar.zip

    java jar包,亲测试可用 安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。 加快下载速度; 压缩,使文件变小,与ZIP压缩机制完全相同。 ...能够让JAR包里面的文件依赖于统一版本的类文件。...

    mybatis-3.0.6

    8. **MyBatis与Spring集成**:通过mybatis-spring库,MyBatis可以无缝地与Spring框架集成,实现依赖注入和事务管理。文档中的mybatis-spring-1.x.x-reference.pdf提供了详细的集成指南。 在阅读这些文档时,我们...

    spring3+mybatis3+mysql全部包

    mybatis-spring-1.0.2.jar--同Spring整合所需jar(http://code.google.com/p/mybatis/downloads/list) Spring AOP 依赖jar: aopalliance-1.0.jar asm-3.3.1.jar aspectj-1.6.10.jar aspectjweaver-1.6.9.jar ...

    Struts2_Spring3.1_MyBatis3.06整合需要用到的jar包.rar

    Struts2、Spring3.1和MyBatis3.06是Java开发中常见的三大框架,它们各自在不同的层面上提供了强大的功能,并且可以互相整合,以实现更高效的企业级应用开发。本压缩包提供了整合这三大框架所需的核心库文件,下面将...

    mybatis-3.0.6.jar

    在实际项目中,MyBatis可以与Spring框架无缝集成,通过Spring的依赖注入(Dependency Injection)来管理和注入Mapper实例,进一步简化了项目的结构。 总结来说,MyBatis是一个轻量级的持久层框架,它简化了数据库...

    mybatis-spring中文文档

    MyBatis-Spring是MyBatis与Spring框架整合的一个类库,它能将MyBatis代码无缝地整合到Spring环境中。通过MyBatis-Spring,Spring可以加载必要的MyBatis工厂类和session类。此外,该类库支持将MyBatis数据映射器和...

    SpringMVC+MyBatis+CXF+Velocity可运行实例

    1):含有spring-3.2.8.RELEASE.jar、velocity-tools-2.0.jar、velocity-1.7.jar、mybatis-spring-1.0.2.jar、mybatis-3.0.6.jar、cxf-api-2.2.9.jar等丰富的jar包。 2):采用spring3.2作为bean容器管理,...

    myBatis-spring 指导手册

    **MyBatis-Spring** 是一个旨在帮助开发者轻松整合 **MyBatis** 和 **Spring** 框架的工具包。通过该工具包,用户能够无缝地将 MyBatis 的代码集成到 Spring 应用程序中。它提供了必要的工厂类和 session 类来简化 ...

    SpringCloud全家桶+Springboot+Mybatis+MySql项目pom.xml文件开箱即用开箱即用

    Spring Cloud Netflix 3.0.6 Spring Cloud Config 3.0.7 Spring Cloud Sleuth 3.0.6 (issues) Spring Cloud Gateway 3.0.8 Spring Cloud Cloudfoundry 3.0.3 Spring Cloud Contract 3.0.6 (issues) Spring Cloud ...

    Spring3.0+mybatis3.0环境搭建

    Spring3.0.6是Spring框架的一个重要版本,它提供了丰富的功能,包括但不限于依赖注入(DI)、面向切面编程(AOP)、事务管理、持久化支持等。Spring的核心特性使得开发者能够构建清晰、松耦合的应用程序结构,极大地...

    Spring与Mybatis整合

    【Spring与Mybatis整合】是将Spring框架与Mybatis数据持久层框架集成的过程,以便更好地管理数据库操作。在Spring 3.1版本时,官方并未直接提供与Mybatis的集成支持,但社区开发了一个中间件使得整合变得可能。以下...

    Spring+mybatis环境搭建(包含jar包)

    `Spring3.0.6`和`MyBatis3.0.6`的依赖可能如下: ```xml &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-context &lt;version&gt;3.0.6.RELEASE &lt;groupId&gt;org.mybatis &lt;artifactId&gt;mybatis &lt;version&gt;...

    spring-framework-3.0.6.RELEASE-with-docs.zip

    Spring提供了对各种持久层技术的支持,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和MyBatis。在3.0.6.RELEASE中,Spring Data Access层增强了对JPA2的支持,提供了更好的事务管理策略,并且支持...

    02 mybatis进阶1

    MyBatis-Spring 兼容MyBatis和Spring的特定版本,例如1.3.0版本对应MyBatis 3.0.6或更高,Spring 3.0.0或以上。 ### 2. 集成配置最佳实践 集成MyBatis-Spring通常涉及以下步骤: 1. 创建Spring项目。 2. 添加...

    Spring-3.0.6的src包

    通过研究Spring-3.0.6的源代码,开发者可以深入理解Spring的工作原理,学习如何利用IoC和AOP设计模式,以及如何结合其他Java技术和框架(如Hibernate、MyBatis、Struts等)构建复杂的企业级应用。同时,源代码中的...

Global site tag (gtag.js) - Google Analytics