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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值