XML document structures must start and end within the same entity.

本文介绍了一种在Linux环境下部署Java Web应用时遇到的XML文档结构错误,特别是由于中文注释不当导致的问题。文章详细分析了错误原因,并提供了具体的解决方案,包括如何正确书写XML注释以及检查JDK版本的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日遇此问题,本机上正常,项目打成war部署到linux上报此错!
错误原因:1、jdk版本引用错误了,可能环境变量里引用了错误的jdk
2、可能linux的编码错误了(我的linux里设置了编码为gbk,所以报此错误)


做项目的时候用的框架spring3.0+struts2.0+mybatis
写了一个配置文件   结果报错如下:
XML document structures must start and end within the same entity.


经过仔细检查 除了标签要写对应之外,就是那个中文注释问题, 一定要前后空格 隔开
<!--  说明  -->

例如:
<!--  字典表  -->

<select id="getArea" parameterType="java.util.HashMap" resultType="com.genertech.ssp.model.Dictionary">
select f_id as id, f_value as value from t_sys_dictionary where f_code='FPQY'
</select>

中文的注释  例如字典表前后一定要有空格   否则就会报该错误 
--------------------------------------------------------分割线-----------------------------------------------------

linux系统上用什么命令查看本机运行的jdk的版本的


JDK有以下几种方法:
  1、查找目前所使用的linux下所使用的jdk安装后的目录:echo $JAVA_HOME;
  2、获得目前所使用的linux下所使用的jdk的版本java -version;
  3、获得所安装后的jdk的版本,在bin目录下输入 ./java -version即可;
在配置好Java环境的情况下可以使用 java -version查看 
--------------------------------------------------------------------------------------------------------

最终解决办法
public void writeToFile(String filePath,String fileName){
                                 Document doc = DocumentHelper.createDocument();
Element rootElement=doc.addElement("root");
rootElement.addAttribute("name", "root");
Element testElement = DocumentHelper.createElement("eleTest");
testElement.addAttribute("name", "testEle");
testElement.addText("this is another text");
testElement.setParent(rootElement);
//XMLWriter out = null;
FileOutputStream out = null;
try{
// out = new XMLWriter(new FileWriter(new File(filePath+File.separator+fileName)));更改为
out = new XMLWriter(new FileOutputStream(new File((filePath+File.separator+fileName))))

out.startDocument();
out.writeOpen(rootElement);
for(int i=0;i<=10000000;i++){
out.write(testElement);
}
out.writeClose(rootElement);

}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
finally{
if( out!=null ){
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值