13719654321 发表于 2017-2-15 11:27:45

weblogic与axis之间向冲突

我们的程序要调用另一个公司的一个接口,之间传递数据是采用xml的方法,我们这边取数据是用这个代码
1http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            String wsURL = AppConst.KKSUrl;
2http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            Service service = new Service();
3http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            Call call = (Call) service.createCall();
4http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            call.setOperationName(new QName(wsURL, "getCodePowerNet"));
5http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            call.setTargetEndpointAddress(new URL(wsURL));
6http://sodabao.iteye.com/Images/OutliningIndicators/None.gif
7http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            String requestContent = getSimulatedXMLData();
8http://sodabao.iteye.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://sodabao.iteye.com/Images/OutliningIndicators/ContractedBlock.gif            xmlReturn = (String) call.invoke(new Object[] http://sodabao.iteye.com/Images/dot.gif{ 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之前。


http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    <container-descriptor>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    <prefer-web-inf-classes>true</prefer-web-inf-classes>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif  </container-descriptor> 
不过这段代码加进去要注意先后顺序


http://sodabao.iteye.com/Images/OutliningIndicators/None.gif<!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">
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif<weblogic-web-app>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    <jsp-descriptor>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        <jsp-param>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            <param-name>compileFlags</param-name>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            <param-value>-g</param-value>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        </jsp-param>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        <jsp-param>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            <param-name>keepgenerated</param-name>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            <param-value>true</param-value>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        </jsp-param>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    </jsp-descriptor>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    <container-descriptor>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        <prefer-web-inf-classes>true</prefer-web-inf-classes>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    </container-descriptor>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    <charset-params>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        <input-charset>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            <resource-path>/*</resource-path>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif            <java-charset-name>GBK</java-charset-name>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif        </input-charset>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    </charset-params>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif    <context-root>/bdsc</context-root>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif</weblogic-web-app>
http://sodabao.iteye.com/Images/OutliningIndicators/None.gif


但是我们和bea的人交流过,他们说不建议修改weblogic.xml,不过我觉得你在path前指定jar感觉不方便,因为weblogic中出现这种问题的时候比较多,比如连接oracle数据库的驱动就会出现冲突。还是修改weblogic.xml一劳永逸!
页: [1]
查看完整版本: weblogic与axis之间向冲突