`
Kevin12
  • 浏览: 230582 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

org.dom4j.DocumentException:Invalid byte 2 of 2-byte UTF-8 sequence

    博客分类:
  • Java
阅读更多
今天做工作流项目(jbpm4),将流程文件导出成xml到客户端后,编码格式是utf-8的,在本地将导出的xml导入到mysql数据库中是正常的,但是将该项目打成war包后放到虚拟机中的tomcat中,运行虚拟机中的tomcat,并访问项目时候,导出的也是utf-8的xml文件,但是再将该文件导入到mysql数据库时候却出现下面的错误:
org.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence. Nested exception: Invalid byte 1 of 1-byte UTF-8 sequence.  
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)  
    at org.dom4j.io.SAXReader.read(SAXReader.java:321)  
    at com.dataoperate.PaseXml.pXml(PaseXml.java:28)  
    at com.dataoperate.JdbcOp.insertDb(JdbcOp.java:30)  
    at com.dataoperate.JdbcOp.main(JdbcOp.java:89) 

google了一下找到了下面的解决方法:
将原先导出的流程xml文件中的编码格式由“utf-8”改成“gbk”后保存,再导入就可以了。
仔细分析原因,我的本地电脑用的是win 7 ,而虚拟机中的系统使用的想xp系统。在中文版的window下java的默认的编码为GBK,虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因。
给我解决思路的来源如chenyanbo所说:
http://blog.csdn.net/chenyanbo/article/details/6866941

下面是我的一个导出的流程xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<root><TbBWebWorkflOwMain id="1000118"><node id="1000118"><wwmWorkflowId id="1000118">1000118</wwmWorkflowId><wwmWorkflowName id="1000118">test20</wwmWorkflowName><wwmWorkflowVersion id="1000118">1</wwmWorkflowVersion><wwmWorkflowIspress id="1000118"></wwmWorkflowIspress><wwmWorkflowIsemail id="1000118"></wwmWorkflowIsemail><wwmWorkflowIssms id="1000118"></wwmWorkflowIssms><wwmWorkflowXml id="1000118">
&lt;process-definition xmlns="http://jbpm.org/4.4/jpdl" name="aaaa" key="aaaa"&gt;&lt;task xmlns="" name="任务1" g="221,360,72,32"&gt;&lt;assignment-handler class="com.sense.workflow.core.FirstAssigneeHandler"/&gt;&lt;description&gt;164D9B9892EA4C9C95D5972CBCF2AC14&lt;/description&gt;&lt;transition name="任务2" to="任务2"/&gt;&lt;/task&gt;&lt;start xmlns="" name="开始" g="241,290,32,32"&gt;&lt;transition name="任务1" to="任务1"/&gt;&lt;/start&gt;&lt;end xmlns="" name="结束" g="240,530,32,32"/&gt;&lt;task xmlns="" name="任务3" g="220,480,72,32"&gt;&lt;assignment-handler class="com.sense.workflow.core.CustomAssigneeHandler"/&gt;&lt;description&gt;FBBC22F3502C4C84B061A9E7034DD2F6&lt;/description&gt;&lt;transition name="结束" to="结束"/&gt;&lt;/task&gt;&lt;task xmlns="" name="任务2" g="220,420,72,32"&gt;&lt;assignment-handler class="com.sense.workflow.core.CustomAssigneeHandler"/&gt;&lt;description&gt;24820DFF666A437A877054582FD1E246&lt;/description&gt;&lt;transition name="任务3" to="任务3"/&gt;&lt;/task&gt;&lt;migrate-instances/&gt;&lt;/process-definition&gt;</wwmWorkflowXml><wwmWorkflowMemo id="1000118"></wwmWorkflowMemo><wwnWorkflowIsrelease id="1000118">1</wwnWorkflowIsrelease><wwnWorkflowReleaseTime id="1000118">2013-09-09 13:17:41.0</wwnWorkflowReleaseTime><wwmCreateDatetime id="1000118">2012-11-20 10:19:41.0</wwmCreateDatetime><wwmLastUpdateDatetime id="1000118">2013-09-09 14:49:12.0</wwmLastUpdateDatetime><wwmLastUpdateOperatorId id="1000118"></wwmLastUpdateOperatorId><wwmWorkflowKey id="1000118">aaaa</wwmWorkflowKey></node></TbBWebWorkflOwMain><TbBWebWorkflOwNode id="1000420"><node id="1000420"><wwnNodeId id="1000420">1000420</wwnNodeId><wwnWwmWorkflowId id="1000420">1000118</wwnWwmWorkflowId><wwnWwmWorkflowName id="1000420">test20</wwnWwmWorkflowName><wwnNodeStepNumber id="1000420">1</wwnNodeStepNumber><wwnNodeName id="1000420">任务1</wwnNodeName><wwnNodeDescription id="1000420">164D9B9892EA4C9C95D5972CBCF2AC14</wwnNodeDescription><wwnNodeType id="1000420">1</wwnNodeType><wwnFormInfo id="1000420">noForm.jsp</wwnFormInfo><wwnTransreadToPeople id="1000420">{"chuanyueType":"1","display":"乐天","config":"82E6911F5DC0419680C65451C0A2CF71"}</wwnTransreadToPeople><wwnTransemailToPeople id="1000420"></wwnTransemailToPeople><wwnLuyouConfig id="1000420">{"lyType":0,"config":[2]}</wwnLuyouConfig><wwnRightConfig id="1000420">{"isRevoke":0,"isCircular":1,"isManualCirculate":1,"isAttachment":1,"isAssign":1,"returnConfig":{"returnType":"0","returnStep":[]}}</wwnRightConfig><wwnPressConfig id="1000420">{"isPress":"0","isEmail":"1","pressTimes":"1","pressInterval":"1"}</wwnPressConfig><wwnAssignConfig id="1000420">{"assignType":[2],"config":[["1"]]}</wwnAssignConfig><wwnHuqianConfig id="1000420"></wwnHuqianConfig><wwnXmlText id="1000420">
&lt;root&gt;&lt;start&gt;&lt;transition to="任务1"/&gt;&lt;/start&gt;&lt;task name="任务1" form="noForm.jsp"&gt;&lt;assignment-handler class="com.sense.workflow.core.FirstAssigneeHandler"/&gt;&lt;description&gt;164D9B9892EA4C9C95D5972CBCF2AC14&lt;/description&gt;&lt;transition name="2" to="2"/&gt;&lt;/task&gt;&lt;/root&gt;</wwnXmlText><wwnCreateDatetime id="1000420">2012-11-20 10:19:41.0</wwnCreateDatetime><wwnLastUpdateDatetime id="1000420">2013-09-09 14:49:12.0</wwnLastUpdateDatetime><wwnLastUpdateOperatorId id="1000420"></wwnLastUpdateOperatorId></node><node id="1000421"><wwnNodeId id="1000421">1000421</wwnNodeId><wwnWwmWorkflowId id="1000421">1000118</wwnWwmWorkflowId><wwnWwmWorkflowName id="1000421">test20</wwnWwmWorkflowName><wwnNodeStepNumber id="1000421">2</wwnNodeStepNumber><wwnNodeName id="1000421">任务2</wwnNodeName><wwnNodeDescription id="1000421">24820DFF666A437A877054582FD1E246</wwnNodeDescription><wwnNodeType id="1000421">1</wwnNodeType><wwnFormInfo id="1000421">noForm.jsp</wwnFormInfo><wwnTransreadToPeople id="1000421">{"chuanyueType":"0","display":"","config":""}</wwnTransreadToPeople><wwnTransemailToPeople id="1000421"></wwnTransemailToPeople><wwnLuyouConfig id="1000421">{"lyType":0,"config":[3]}</wwnLuyouConfig><wwnRightConfig id="1000421">{"isRevoke":0,"isCircular":0,"isManualCirculate":1,"isAttachment":1,"isAssign":1,"returnConfig":{"returnType":"0","returnStep":[]}}</wwnRightConfig><wwnPressConfig id="1000421">{"isPress":"0","isEmail":"1","pressTimes":"1","pressInterval":"1"}</wwnPressConfig><wwnAssignConfig id="1000421">{"assignType":[2],"config":[["1"]]}</wwnAssignConfig><wwnHuqianConfig id="1000421"></wwnHuqianConfig><wwnXmlText id="1000421">
&lt;root&gt;&lt;task name="任务2" form="noForm.jsp"&gt;&lt;assignment-handler class="com.sense.workflow.core.CustomAssigneeHandler"/&gt;&lt;description&gt;24820DFF666A437A877054582FD1E246&lt;/description&gt;&lt;transition name="3" to="3"/&gt;&lt;/task&gt;&lt;/root&gt;</wwnXmlText><wwnCreateDatetime id="1000421">2012-11-20 10:19:41.0</wwnCreateDatetime><wwnLastUpdateDatetime id="1000421">2013-09-09 14:49:12.0</wwnLastUpdateDatetime><wwnLastUpdateOperatorId id="1000421"></wwnLastUpdateOperatorId></node><node id="1000422"><wwnNodeId id="1000422">1000422</wwnNodeId><wwnWwmWorkflowId id="1000422">1000118</wwnWwmWorkflowId><wwnWwmWorkflowName id="1000422">test20</wwnWwmWorkflowName><wwnNodeStepNumber id="1000422">3</wwnNodeStepNumber><wwnNodeName id="1000422">任务3</wwnNodeName><wwnNodeDescription id="1000422">FBBC22F3502C4C84B061A9E7034DD2F6</wwnNodeDescription><wwnNodeType id="1000422">1</wwnNodeType><wwnFormInfo id="1000422">noForm.jsp</wwnFormInfo><wwnTransreadToPeople id="1000422">{"chuanyueType":"0","display":"","config":""}</wwnTransreadToPeople><wwnTransemailToPeople id="1000422"></wwnTransemailToPeople><wwnLuyouConfig id="1000422">{"lyType":0,"config":[4]}</wwnLuyouConfig><wwnRightConfig id="1000422">{"isRevoke":0,"isCircular":0,"isManualCirculate":0,"isAttachment":1,"isAssign":1,"returnConfig":{"returnType":"3","returnStep":[]}}</wwnRightConfig><wwnPressConfig id="1000422">{"isPress":"0","isEmail":"1","pressTimes":"1","pressInterval":"1"}</wwnPressConfig><wwnAssignConfig id="1000422">{"assignType":[2],"config":[["1"]]}</wwnAssignConfig><wwnHuqianConfig id="1000422"></wwnHuqianConfig><wwnXmlText id="1000422">
&lt;root&gt;&lt;task name="任务3" form="noForm.jsp"&gt;&lt;assignment-handler class="com.sense.workflow.core.CustomAssigneeHandler"/&gt;&lt;description&gt;FBBC22F3502C4C84B061A9E7034DD2F6&lt;/description&gt;&lt;transition name="4" to="4"/&gt;&lt;/task&gt;&lt;/root&gt;</wwnXmlText><wwnCreateDatetime id="1000422">2012-11-20 10:19:41.0</wwnCreateDatetime><wwnLastUpdateDatetime id="1000422">2013-09-09 14:49:12.0</wwnLastUpdateDatetime><wwnLastUpdateOperatorId id="1000422"></wwnLastUpdateOperatorId></node><node id="1000423"><wwnNodeId id="1000423">1000423</wwnNodeId><wwnWwmWorkflowId id="1000423">1000118</wwnWwmWorkflowId><wwnWwmWorkflowName id="1000423">test20</wwnWwmWorkflowName><wwnNodeStepNumber id="1000423">4</wwnNodeStepNumber><wwnNodeName id="1000423">结束</wwnNodeName><wwnNodeDescription id="1000423">15D72A74A5B5439593AA0558AA940E78</wwnNodeDescription><wwnNodeType id="1000423">6</wwnNodeType><wwnFormInfo id="1000423">noForm.jsp</wwnFormInfo><wwnTransreadToPeople id="1000423">{"display":"","config":"","chuanyueType":0}</wwnTransreadToPeople><wwnTransemailToPeople id="1000423"></wwnTransemailToPeople><wwnLuyouConfig id="1000423">{"config":[],"lyType":0}</wwnLuyouConfig><wwnRightConfig id="1000423">{"isCircular":0,"isAttachment":1,"isAssign":0,"returnConfig":{"returnType":0},"isRevoke":0}</wwnRightConfig><wwnPressConfig id="1000423">{"pressTimes":"0","isEmail":"1","isPress":0,"pressInterval":"0"}</wwnPressConfig><wwnAssignConfig id="1000423">{"assignType":[],"config":[]}</wwnAssignConfig><wwnHuqianConfig id="1000423"></wwnHuqianConfig><wwnXmlText id="1000423">&lt;end name="结束"/&gt;</wwnXmlText><wwnCreateDatetime id="1000423">2012-11-20 10:19:41.0</wwnCreateDatetime><wwnLastUpdateDatetime id="1000423">2013-09-09 14:49:12.0</wwnLastUpdateDatetime><wwnLastUpdateOperatorId id="1000423"></wwnLastUpdateOperatorId></node></TbBWebWorkflOwNode></root>
分享到:
评论

相关推荐

    org.dom4j.jar

    java.lang.ClassNotFoundException: org.dom4j.DocumentException 缺少dom4j.jar包 加进去即可

    使用 dom4j 解析 XML

    使用 dom4j 解析 XML;很不错的中文文档

    itextpdf5.4.3+itextasian5.2.0

    解决 com.itextpdf.text.DocumentException: Font 'STSongStd-Light' with 'UniGB-UCS2-H' is not recognized. 亲测可用!

    poi所有jar,dom4j-1.6.1.jar,xmlbeans-2.6.0.jar

    解决:HSSFWorkbook 解决:java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlOptions 解决:java.lang.NoClassDefFoundError: org/dom4j/DocumentException

    tif 转合并 pdf itext java

    这是本人最近工作中的一个真实项目,将tif文件转换成pdf文件或者把多个tif文件合并成一个pdf文件。在这里跟大家分享下,希望能帮到哪位朋友。 内附详细代码及说明 和 itext包

    xml简单实现学生管理系统!看不懂来打我!!!

    目录一:项目分析二:实现步骤1.Dom4j工具类2.创建xml文件:3.Service层4.测试方法 一:项目分析 学生管理系统: 通过利用xml文件的存储功能来存储学生信息。再用dom4j解析器来对xml文件进行操作,也会用到一点xpath...

    在dom4j中使用XPath的简单实例

    import org.dom4j.DocumentException; import org.dom4j.Node; import org.dom4j.io.SAXReader; public class Demo4 { public static void main(String[] args) throws DocumentException { SAXReader reader=new ...

    java项目超市

    import org.dom4j.DocumentException; public class ServerThread extends Thread{ private Socket socket=null; public ServerThread(Socket socket){ this.socket=socket; } public void run(){ // 1....

    JAVA读XML:sax,dom,jdom,dom4j的比较以及选择.doc

    JAVA读XML:sax,dom,jdom,dom4j的比较以及选择.doc

    用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统

    22. //如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException 23. dom4j-1.6.1.jar 24. 25. //dwr必须 26. dwr.jar 27. 28. 29. //不用此包,在启动时招聘:java.lang....

    Tomcat解析XML和反射创建对象原理

    下面通过实例代码给大家介绍Tomcat解析XML和反射创建对象原理,具体代码如下所示: ...import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class ServerReadXML1

    dom4j 使用简介 代码 程序

    // )(Z QXML,*B(Z_,+, XML (E ...MalformedURLException, DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File&#40;fileName&#41;); return document; }

    com.lowagie.text.jar

    java使用iText实现PDF文件添加水印功能的jar包

    C#创建PDF文件一例

    // step 1: creation of a document-object Document document = new Document(); try { // step 2: // we create a writer that listens to the document // and directs a PDF-stream to a ...

    itextsharp生成pdf插件

    生成pdf的插件工具,绿色插件,请放心使用,C#使用方法:先引用itextsharp.dll动态链接库,然后using itextsharp.text等空间,即可使用。 引用: using iTextSharp;... catch (DocumentException de) { } }

    apache-cxf

    doc = read.read(new ByteArrayInputStream(retStr.getBytes("UTF-8"))); } catch (UnsupportedEncodingException | DocumentException e) { } catch (ClientException e) { } if(null == doc){ return null; ...

    Java生成pdf的demo.rar

    java导出pdf需要用到iText库,iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF...public void getPDFdemo() throws DocumentException, IOException{ //这个导出用的是 iTextAsian.jar 和iText-2.1.3

Global site tag (gtag.js) - Google Analytics