扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
服务器环境:linux
jdk1.4.2
weblogic 8.16sp6
oracle9i
web service采用weblogic自带web service方式,服务发布通过web-services.xml配置发布,程序代码写完后在本地测试没有问题,java文件的编码格式是gbk。
发布到服务器上后,问题来了,怎么中文都变成了乱码?第一想法是简单,转码,以前遇到乱码都是通过手工转码来解决的,但是这次不行了,可以想到的转码的方式都试了,还是不行,都要气炸了。最后发现一个怪异的问题:通过jsp页面直接调用java程序,java程序直接打印中文在jsp页面上,显示出来的还是乱码,java文件是gbk编码的,所以java文件本身绝对没有问题,jsp也是gbk的,并且ie浏览器察看jsp页面也是gbk的,看来问题不一定处在程序本身,最后终于发现英文系统,他的默认的java的运行环境是iso8859-1的。但是为什么之前转码一个转不过来呢,估计就是weblogic自己的那个web service 实现对soap消息做了什么处理,所以转码失败,又或者是本人太笨,转码少转了几种情况。
知道了这些就好办了,在网上查了一下文档。有两种处理方式,都可以解决问题:
终于搞定了,但是为了在不同的环境下都可以保证程序正确运行,推荐用第2种方式。
weblogic虽然是8错,能集成的东西都通吃,但是用起来问题还真多,现在还有好多东西都搞不懂。比如:
1、在weblogic下发布xfire作的web service,xfire通过***?WSDL方式访问服务的描述,这个同weblogic的冲突,疯狂报错。
2、用xmlbeans自带的工具生成xml的java类,在weblogic下调用会报错,用weblogic提供的工具生成就不会报错,太霸道了。
3、xfire和axis的webservice的client端可以通过多种方式相互访问xfire和axis的webservice,但是xfire和axis的webservice的client端只能通过特定的方式访问weblogic提供的webservice。
参考文档:http://coffey321.spaces.live.com/blog/cns!BC193786F4A1BDD1!454.entry(怪异的路径)
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者