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]