以前使用ibatis从来都没有管过dtd的加载,可是有一天你的主机不允许你访问外网,你就悲剧了,因为dtd的校验不能通过了,这个本来个人感觉不应该有这么蹩脚的一步,去官网验证一次你本地的dtd,当然了官方也考虑到了用户应用可能不能联网,所以即便是远程校验失败,也不影响应用本身的启动。
可是更为苛刻的要求出现了,就是一旦主机检测到应用对外有请求就直接将应用的启动进程cut掉了,那么悲剧了,因为经过我一天的测试发现这个验证的过程似乎一直都存在,也就是说如果上述成立那么你的应用将永远起不来了,网上有很多说法,比如自己写解析器,等等,这个已经不是去哪里解析的问题了,比如SqlMapClasspathEntityResolver这个类,它负责去加载dtd,如果你仅仅重写了她似乎也不能从本质上解决,因为上述问题的出现貌似跟他没有关系
我做了一件无耻的事情,就是讲systemId指向了本地应用,比如:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"sql-map-config-2.dtd">
这样的话应为修改了SystemId(即:"sql-map-config-2.dtd")所以就需要手工将对应的dtd放置到应用的路径下,这里需要提醒一下,一般来说这个文件放置到应用根目录下就可以了,即与WEB-INF同级的目录下,正常情况也应该如此,本人犯了一个很傻的错误,就是在放置文件的时候觉得放置在应用根目录下有点别扭,就想着能不不能放置到配置文件路径下,由于项目采用的是maven多模块结构,就放在了业务逻辑层的src/main/resources目录下,为了定位(其实是不确定怎么加载)就将dtd文件在所有目录下都放置一边,部署后发现根本没起作用,最后就放置在了web模块的WEB-INF目录下,部署OK,当然了,如果你要放置到WEB-INF对应的模块中的某个目录下,就得在SystemId中指定具体的路径了
分享到:
相关推荐
通过理解DTD中的各个元素及其属性,可以更准确地掌握Ibatis的配置语法,从而编写出符合规范的XML配置。同时,将这些DTD文件导入Eclipse等IDE,可以得到代码提示和验证,大大提升开发效率,避免因配置错误导致的问题...
在本文中,我们将深入探讨ibatis配置文件的关键组成部分及其如何影响ibatis框架的运行机制。ibatis(现在通常称为MyBatis)是一个优秀的持久层框架,它将SQL语句与Java代码分离,允许开发者直接编写SQL语句并映射到...
这个文件则是Ibatis配置文件的DTD,它规定了如何配置数据源、事务管理器、SqlSessionFactory等核心组件。配置文件中,你可以定义`<transactionManager>`来设置事务管理策略,`<dataSource>`来指定数据源,以及`...
本篇文章将深入探讨如何使用XML配置文件来配置iBATIS,以解决你在实际开发中可能遇到的各种问题。 首先,我们了解iBATIS的核心概念——映射器(Mapper)。映射器是定义SQL语句的地方,而XML配置文件是映射器的主要...
### ibatis配置文件、映射文件详解 #### 1. SQL Map Config 文件详解 在ibatis框架中,`sqlMapConfig.xml`是一个非常重要的配置文件,它主要用于设置ibatis的全局配置信息,包括数据库连接信息、环境配置以及其它...
首先,我们来看`sql-map-2.dtd`和`sql-map-config-2.dtd`这两个文件,它们是iBatis时代的配置文件DTD(Document Type Definition),用于定义XML文件的结构和元素。在iBatis中,`sql-map-config.xml`是全局配置文件...
这两个DTD(Document Type Definition)文件是Ibatis配置文件的定义文档,用于验证XML文件的结构和元素,确保其符合规范。 首先,我们来看“sql-map-2.dtd”。这个文件定义了SqlMap配置文件的元素和属性,是Ibatis ...
- `sql-map-config.dtd`:与`sql-map-config-2.dtd`类似,是较早版本的iBATIS配置文件DTD。 - `dao.dtd` 和 `dao-2.dtd`:可能表示DAO(数据访问对象)配置的DTD,但具体用途需要根据上下文确定。 3. **添加DTD...
在Struts中,配置文件通常为struts-config.xml,其中包含了各种Action配置,描述了请求如何映射到特定的处理方法。 Spring 是一个全面的Java企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP)等核心...
在Ibatis中,`sql-map`和`sql-map-config`是两个重要的XML配置文件,它们使用DTD(Document Type Definition)来定义其结构和规则。 DTD是XML文档类型定义,它定义了XML文档的合法构建块,包括元素、属性、实体等,...
XML配置文件在IT行业中扮演着至关重要的角色,特别是在Spring、Hibernate、Struts2和Ibatis这些流行的Java框架中。DTD(Document Type Definition)是XML的一个关键组成部分,它定义了XML文档结构的规则,帮助开发者...
在Ibatis中,XML配置文件扮演着至关重要的角色,特别是DTD(Document Type Definition)文档,它是XML文件的结构定义,确保XML文件的合法性。在Ibatis中,DTD用于规范SQL Map配置文件的结构。 `sql-map-2.dtd`是...
- `sql-map-config.dtd`:这可能是iBatis的一个旧版配置文件DTD。 - `dao.dtd` 和 `dao-2.dtd`:这些可能是自定义的DAO层(Data Access Object)的DTD,用于定义自定义的XML配置。 总结来说,Spring框架中的XML配置...
在全局配置文件中,你可以选择JDBC或MANAGED作为事务管理器。JDBC事务管理需要手动提交或回滚,而MANAGED则由容器(如Spring)管理。 6. **参数绑定和结果映射** Ibatis支持多种参数绑定方式,如#{param}(预编译...
《iBatis配置与映射文件详解》 iBatis,作为一个轻量级的持久层框架,以其灵活的SQL映射和良好的数据库交互性深受开发者喜爱。本文将深入解析iBatis的核心配置文件`sqlMapConfig.xml`,以及映射文件的使用方法,...
### ibatis配置教程详解 #### 一、简介与准备工作 ibatis是一款优秀的持久层框架,它简化了数据访问层的繁琐工作,使开发者能够更加专注于业务逻辑的开发。本教程将详细讲解如何配置ibatis环境,并通过实际示例来...
现在,Ibatis 已经被引入到项目中,我们可以开始编写配置文件了。Ibatis 的主要配置文件是 `SqlMapConfig.xml`,它定义了数据源、事务管理器以及其他全局设置。一个基本的 `SqlMapConfig.xml` 文件可能如下所示: `...
接着,我们需要配置 iBatis 的核心配置文件 `ibatis-config.xml`。这个文件定义了数据源、事务管理器等全局设置。以下是一个基本的配置示例: ```xml <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD ...