用taconite做Ajax,以前都是尽量返回数字或英文,这样一方面避免中文问题,一方面减小传输量,在页面再用一个map通过js来匹配,显示出相应的中文。
这次情况有些特殊,“摘要”栏的内容是其他交易输入的,因此要做到动态匹配,本身页面上的map还要到后台去取一遍,这样就太浪费了,还是解决一下中文问题,直接传回来中文的内容比较好。
问题其实就是返回来的responseText或responseXML的值中含有中文就变乱码,taconite的js又不认这个,就报错。
这个问题要说解决起来也很简单,原因是Ajax在接收responseText或responseXML的值的时候是按照UTF-8来解码的,如果服务器端发送的数据不是UTF-8的格式,那么接收的值就会是乱码,而Java后台这边是以Unicode来编码的,问题就出现了。
解决方法就是在服务器端设置response的编码格式:
response.setCharacterEncoding("UTF-8");
这样就能正常显示中文了,上图中的"科目号"里就包括了回显的中文。
另外在测试环境试了一下,在WebLogic 8.1 SP5上那样设还不行,一定要设成:
response.setContentType("text/xml;charset=UTF-8");
Tuxedo这边又建了一个域,供WebLogic call一部分的报表服务用,以后日终批量报表都通过这个专用的报表服务器走,联机报表还走原来的后台,这样的确能缓解很大的系统压力。也许压力测试后,联机报表也会分出来,后台只是用来接收报文,专门处理业务逻辑。
今天配置了一下,WebLogic call不同服务器上的Tuxedo的多个域,通过WTC方式,两边配置好后,都能call通,也顺利下载到了报表。剩下的问题就是把Tuxedo返回的错误码封一下,在页面上给出不同的错误信息了。
PS: 只有WTC的License,没法用JOLT,如果有的选择的话,一定要用JOLT,反正现在用的TPcall都是单向的,JOLT还不用绑定在WebLogic上,在Eclipse中集成Tomcat用JOLT去call 后台,有多爽…
为了提高系统运行的效率,最近进行了weblogic和httpd的集成,把所有静态资源的解析全部交给httpd做。由于httpd中有现成的整合模块,因此集成过程非常简单,我用的软件版本是
weblogic8.1.5
apache-httpd-2.0.59
整合过程
cp ~/bea/weblogic81/server/lib/linux/i686/mod_wl_20.so ~/apache-httpd-2.0.59/modules/
vi ~/apache-httpd-2.0.59/conf/httpd.conf
增加LoadModule weblogic_module modules/mod_wl_20.so
集群设置
<IfModule mod_weblogic.c>
WebLogicCluster 10.229.23.250:7002,10.229.23.250:7003
MatchExpression *.ftl
MatchExpression *.do
</IfModule>
单机设置
<IfModule mod_weblogic.c>
WebLogicHost 192.168.80.47
WebLogicPort 7001
MatchExpression *.ftl
MatchExpression *.do
</IfModule>
最新评论