欢迎进入Wiki » FAQ » 打包时异常:java.io.UTFDataFormatException: encoded string too long: xxxx bytes?

打包时异常:java.io.UTFDataFormatException: encoded string too long: xxxx bytes?

在2014-05-17 11:04上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

在 grails 中打 war 包,执行到编译gsp时,控制台输出异常:

| Compiling 1412 GSP files for package [fooBar]
java.io.UTFDataFormatException: encoded string too long: 83690 bytes
        at java.io.DataOutputStream.writeUTF(DataOutputStream.java:347)
        at java.io.DataOutputStream.writeUTF(DataOutputStream.java:306)
        at java.lang.Thread.run(Thread.java:662)

原因是gsp文件内容太多、连续的静态文本(中间没有任何gsp标签、el表达式、jsp片段)超过 65535 个字节导致,常发生在word、wps的导出模板中。

如果是基于 BroToolkit 的,则上述日志中会提示出具体是哪个 gsp 文件(否则只能根据最近代码提交情况找了),找到对应的gsp文件后,在大段的连续静态文本之间随意插入一点代码,将其隔开即可。

如下面的wps模板所示:

...
</字:单元格>
${""}
<字:单元格 uof:locID="t0148">
...

2014-05:grails 2.3.x 已修复

标签: grails BroToolkit
在2014-01-14 09:08上被李小翔创建

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号