pangxia75 发表于 2017-2-15 13:16:45

weblogic 报UTF8 representation for string错误

weblogic 报UTF8 representation for string以及is too long for constant pool错误
  weblogic 报UTF8 representation for string
is too long for constant pool错误,tomacat下没任何问题。什么原因呢?上网一查,发现weblogic在没有打sp4补丁时,就会报这个错误,
网上查到的解决方法及原因:
这是因为weblogic server为了加快速度做过优化,但是可能你的html语言里包含多字节文字,例如中文,导致突破64K的限制。
  如果你一定要大jsp支持,那么你可以这样:
1)升级到8.1sp4
  或者
2)在很长的html脚本的中间用<%;%>强行分开,告诉weblogic server不要用一个方法去输出。
  
在java技术中,每个方法里面代码最大的长度是64K,这是jvm本身设计所决定的。
  对应于没有jsp文件,所有的html标记都是通过java代码打印出来的,例如:
out.print("\n<html>\n<body>\n......");
  而且jsp的所有输出最终都是在jsp编译生成的servlet里面的service方法里全部打印和输出,这就意味着,如果你的jsp文件太大,准确说是你的html静态代码太长,超过了64K限制的话,那么很不幸,jsp在编译的时候,它的service方法里的代码就会超出64K,就会出这个错误。
  这个错误并不是weblogic server的问题,而是归根结底是jvm设计时的一个缺陷。
  对这个问题的解决办法就是拆分jsp,不要写入超长的html脚本。
  分成多个文件,然后做include,问题解决
  引自 http://hi.baidu.com/aja2008/blog/item/2b7fd9c42e6258cf39db49aa.html


页: [1]
查看完整版本: weblogic 报UTF8 representation for string错误