java执行groovy脚本,0xA0问题
Java在执行从zookeeper节点上读取的groovy脚本的时候出错。可能是因为zookeeper存节点数据时对空格的编码问题。
groovy脚本本地测试完全正常,把脚本拷贝到zookeeper节点中,再从zookeeper中读取时出则异常。
报以下错误,某字符无法解析。错误信息:
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script6.groovy: 6: unexpected char: 0xA0 @ line 6, column 2.
def modfdumber
^
解决方案:
开始第一眼看到以为是空格,后来做了很多去空白符号的操作也无济于事,“奇怪的空白”还是存在。最后使用空白字符替换掉无法解析的字符,问题解决。
char unexpectedChar=0xA0;//groovy不能解析的字符 char space=32;//空格字符 strategyLogic=strategyLogic.replace(unexpectedChar,space);
总结:
解决这个问题花了很多时间是因为一开始的时候没有把着眼点放在 ‘0xA0’这个错误信息上,做了很多无用功。
浙公网安备 33010602011771号