扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
服务器环境: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(怪异的路径)
婵″倹鐏夐幃銊╂姜鐢瓕鎻╅崚鍥╂畱閹厖绨$憴顤廡妫板棗鐓欓張鈧弬棰侀獓閸濅椒绗岄幎鈧張顖欎繆閹垽绱濋柇锝勭疄鐠併垽妲勯懛鎶姐€婄純鎴炲Η閺堫垶鍋栨禒璺虹殺閺勵垱鍋嶉惃鍕付娴f娊鈧柨绶炴稊瀣╃閵嗭拷