无法读取xml头部dtd的原因

          昨天有人碰到这样一个问题,struts2程序以前本身跑得好好的,但后来运行出问题,说无法读取struts2.0-dtd之类的。

          其实这个问题,在SSH项目中大家可能有时遇到。从字面意思来看,把web项目部署到服务器上后,dom4j解析xml文件,找不到 struts2.0-dtd之类的文件。 

             从深层次分析,其实应该是你自己xml的dtd格式写的不对,因为按照struts,spring以及hibernate的运行机制,只要你按照官方文档写dtd格式,就不会出现这个问题。系统会自动在classpath路径下的某个路径下寻找相应的dtd文件,如果找不到,才到指定的url网站上找。

      

 比如struts2.3.4 为例,我们用rar压缩工具打开struts2-core-2.3.4.1.jar包,就会发现有多个struts dtd文件。比如struts-2.1.7.dtd ,struts-2.0.dtd,我们选择struts-2.1.7.dtd来说。

打开struts-2.1.7.dtd文件,我们可以再注释的地方可以看到这样一句话

<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
 "http://struts.apache.org/dtds/struts-2.1.7.dtd">

    其实这个就是你需要在struts.xml里配置dtd格式。

 

以hibernate3.5.5为例,我们打开hibernate3.jar包可以发现,在org.hibernate里面有hibernate-mapping-3.0.dtd这个文件,这个文件开头有介绍

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
那么我们配置hibernate的hbm.xml的时候,把头文件这样加上就ok了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值