一般动作
在 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 已修复