报错信息:
错误分析:
1. 因为java抛错,报错信息越往下越接近底层信息
2. 本地使用eclipse调用wsdl地址时,使用sun的jdk的HttpURLConnection能正常循环调用wsdl地址,服务端能正常接收报文信息,所以初步猜测是ICS平台环境问题
3. 往下一层一层地查看平台抛出的日志,发现平台使用的是weblogic的HttpURLConnection连接方式,而没有使用sun的JDK包里的HttpURLConnection。因为weblogic对sun里的HttpURLConnection进行了重写,使得程序调用weblogic里封装的http方法报错(因为两者调用方法存在差异,冲突报错了)
解决方法有三种:
第一种方法: 修改脚本/weblogic/domains/1213/ICS/bin/startWebLogic.sh,增加如下内容, 指定ICS平台里的weblogic,使用sun里jdk相关的HttpURLConnection包
因为ICS平台有两个server,一个是adminserver,另一个是server1。
应用部署在server1下,adminserver是用来管理serverl用的,集群的作用。
在server1下,增加环境配置参数“ –DuseSunHttpHandler=true”(注意前有个空格),
使应用里的程序调wsdl时,能使用的是sun的jdk里的HttpURLConnection,而不是使用weblogic里的HttpURLConnection,重启weblogic,问题解决
第二种方法: 在脚本中,增加如下内容,指定预先加载sun里jdk相关的HttpURLConnection包
export PRE_CLASSPATH=sun相关HttpURLConnection包
第三种方法: 修改应用工程的weblogic.xml文件,增加下面内容,让系统启动优先加载应用中使用的lib包
<prefer-web-inf-classes>true</prefer-web-inf-classes>