在Action中,当我要向数据库中插入一条记录时,报了下面的错误:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:294)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
com.zrxx.action.ProjectAction.execute(ProjectAction.java:33)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
com.zrxx.util.SqlSessionFactoryTool.getSqlSessionFactory(SqlSessionFactoryTool.java:30)
com.zrxx.dao.BaseDao.openSession(BaseDao.java:15)
com.zrxx.dao.BaseDao.openSession(BaseDao.java:10)
com.zrxx.dao.ProjectDao.insertPro(ProjectDao.java:13)
com.zrxx.action.ProjectAction.add(ProjectAction.java:54)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
com.zrxx.action.ProjectAction.execute(ProjectAction.java:33)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
这个错误是当dao对象已经创建了,调用dao.insert()时发出的
附上我的SqlSessionFactoryTool源代码:
public class SqlSessionFactoryTool {
private static SqlSessionFactoryTool tool;
private SqlSessionFactory factory;
public static SqlSessionFactoryTool getInstance(){
if(tool == null)
tool = new SqlSessionFactoryTool();
return tool;
}
public SqlSessionFactory getSqlSessionFactory(){
String resource = "/mybatis.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
factory = new SqlSessionFactoryBuilder().build(reader);
return factory;
}
这是我的目录结构
问题补充:Wind_ZhongGang 写道
ibatis相关包导入不全,看看你的lib下的ibatis包有哪些?
不是只有一个mybatis-3.0.6.jar吗?
问题补充:edenlee 写道
org/apache/ibatis/io/Resources 是Ibatis核心包的类,明显你没有把ibatis核心包加入运行的classpath:/WEB-INF/lib/下
yes,you're right. thanks
相关推荐
>Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你放dtd文件的位置例如:D:\mybatis\mybatis-3-config.dtd)->Key(如果更改config,此处应该是:-//mybatis.org//DTD ...
springboot启动报错:java.lang.NoClassDefFoundError: org/springframework/transaction/ReactiveTransactionManager 不添加org.springframework.boot:spring-boot-starter-data-jpa:2.2.5.RELEASE,只有org....
MyBatis是一个流行的Java持久层框架,它简化了数据库操作,通过XML或注解的方式将SQL与Java代码绑定,提供了一种直接操作结果集的方法。在MyBatis中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关...
http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd访问不到了怎么办,xml中引用报红,不能校验了 解决办法 mybatis-generator-config_1_0.dtd文件存在于mybatis-generator-core-1.3.2.jar包中,路径如下org/...
mybatis-3-mapper.dtd
1. `mybatis.jar`:这是MyBatis的核心库,包含了MyBatis的主要功能,如SQL映射文件解析、动态SQL生成等。它提供了SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession等关键接口,是整个MyBatis框架的基础。 ...
eclipse中使用xml自动提示功能所需文件:mybatis-3-mapper.dtd eclipse中使用xml自动提示功能所需文件:mybatis-3-mapper.dtd eclipse中使用xml自动提示功能所需文件:mybatis-3-mapper.dtd
MyBatis Generator | 1.3.6 | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html) PageHelper | 5.1.2 | [http://git.oschina.net/free/Mybatis_PageHelper]...
在使用Mybatis框架时,你可能会遇到`org.apache.ibatis.exceptions.PersistenceException`这样的异常。这个异常通常表示在执行数据库查询操作时遇到了问题。本篇将详细分析这个问题并提供解决方法。 ### 问题概述 ...
MyBatisGenerator | 数据层代码生成 | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html) PageHelper | MyBatis物理分页插件 | ...
Maven坐标:org.mybatis:mybatis:3.5.9; 标签:mybatis、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...
`java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...
【标题】"mybatis02 mcls.rar"是一个与MyBatis框架相关的压缩包,其中包含的文件名为“mcls”。这个压缩包很可能是MyBatis框架第二部分的学习资料或者示例代码,用于深入理解MyBatis的工作原理和使用方法。 【描述...
《Mybatis-Plus实战解析与应用》 Mybatis-Plus(简称MP)是Mybatis的扩展插件,它简化了Mybatis的很多繁琐操作,提高了开发效率,尤其在实际项目中,Mybatis-Plus的使用使得数据库操作变得更加便捷。本实战源码主要...
MyBatis是一个流行的Java持久层框架,它简化了数据库操作,通过XML或注解的方式将SQL与Java代码绑定,使得开发者能够更专注于SQL本身。在处理`mybatis-3-mapper.dtd`这个问题时,我们需要深入理解MyBatis的Mapper...
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 标题中的"mybatis-3.4.6.jar"是MyBatis框架的特定版本,即3.4.6版的Java...
在整合Spring、Struts2和Mybatis的过程中,可能会遇到各种问题,其中之一就是`java.lang.IllegalArgumentException: Result Maps collection already contains value for X`。这个问题通常出现在Mybatis配置文件中,...
DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <select id="selectUser" resultType="com....
1、使用说明 使用IDE导入本项目,IDE需要安装lombok插件 创建数据库, 如mysql数据库导入mysql.sql 配置application-dev.yml中的数据库连接 直接运行CompanyProjectApplication.java 项目根目录下执行mvn -X clean ...