我们的程序要调用另一个公司的一个接口,之间传递数据是采用xml的方法,我们这边取数据是用这个代码
其中的call是org.apache.axis.client下的,以前我们的中间件是webshere,tomcat倒没发现什么异常,后来换成weblogic后,我们就怎么也取不到数据,但是再开发模式下就好用。
一步一步的跟踪发现是在这
xmlReturn = (String) call.invoke(new Object[] { requestContent });
出现问题。
查看错误日值发现是和weblogic的webserver相冲突了。
解决的方法有2种:
1
String wsURL
=
AppConst.KKSUrl;
2 Service service = new Service();
3 Call call = (Call) service.createCall();
4 call.setOperationName( new QName(wsURL, " getCodePowerNet " ));
5 call.setTargetEndpointAddress( new URL(wsURL));
6
7 String requestContent = getSimulatedXMLData();
8 xmlReturn = (String) call.invoke( new Object[] { requestContent } );
2 Service service = new Service();
3 Call call = (Call) service.createCall();
4 call.setOperationName( new QName(wsURL, " getCodePowerNet " ));
5 call.setTargetEndpointAddress( new URL(wsURL));
6
7 String requestContent = getSimulatedXMLData();
8 xmlReturn = (String) call.invoke( new Object[] { requestContent } );
其中的call是org.apache.axis.client下的,以前我们的中间件是webshere,tomcat倒没发现什么异常,后来换成weblogic后,我们就怎么也取不到数据,但是再开发模式下就好用。
一步一步的跟踪发现是在这
xmlReturn = (String) call.invoke(new Object[] { requestContent });
出现问题。
查看错误日值发现是和weblogic的webserver相冲突了。
解决的方法有2种:
1. 配置weblogic.xml,强制weblogic首先加载应用WEB-INF中的class
2. 修改startweblogic.cmd,将axis下的saaj.jar的路径放在weblogic的webservices.jar之前。
<
container-descriptor
>
< prefer-web-inf-classes > true </ prefer-web-inf-classes >
</ container-descriptor >
< prefer-web-inf-classes > true </ prefer-web-inf-classes >
</ container-descriptor >
不过这段代码加进去要注意先后顺序
<!
DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls610/dtd/weblogic-web-jar.dtd"
>
< weblogic-web-app >
< jsp-descriptor >
< jsp-param >
< param-name > compileFlags </ param-name >
< param-value > -g </ param-value >
</ jsp-param >
< jsp-param >
< param-name > keepgenerated </ param-name >
< param-value > true </ param-value >
</ jsp-param >
</ jsp-descriptor >
< container-descriptor >
< prefer-web-inf-classes > true </ prefer-web-inf-classes >
</ container-descriptor >
< charset-params >
< input-charset >
< resource-path > /* </ resource-path >
< java-charset-name > GBK </ java-charset-name >
</ input-charset >
</ charset-params >
< context-root > /bdsc </ context-root >
</ weblogic-web-app >
< weblogic-web-app >
< jsp-descriptor >
< jsp-param >
< param-name > compileFlags </ param-name >
< param-value > -g </ param-value >
</ jsp-param >
< jsp-param >
< param-name > keepgenerated </ param-name >
< param-value > true </ param-value >
</ jsp-param >
</ jsp-descriptor >
< container-descriptor >
< prefer-web-inf-classes > true </ prefer-web-inf-classes >
</ container-descriptor >
< charset-params >
< input-charset >
< resource-path > /* </ resource-path >
< java-charset-name > GBK </ java-charset-name >
</ input-charset >
</ charset-params >
< context-root > /bdsc </ context-root >
</ weblogic-web-app >