冷面阎罗

低调做人&&高调做事
随笔 - 208, 文章 - 3, 评论 - 593, 引用 - 0
数据加载中……

weblogic与axis之间向冲突

我们的程序要调用另一个公司的一个接口,之间传递数据是采用xml的方法,我们这边取数据是用这个代码
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 });

其中的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的路径放在weblogicwebservices.jar之前。

    <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>


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

posted on 2006-11-24 08:41 冷面阎罗 阅读(4147) 评论(3)  编辑  收藏 所属分类: 数据库

评论

# re: weblogic与axis之间向冲突  回复  更多评论   

按照以上的解决方法,将startWeblogic.cmd修改为

set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%

\jre\lib\rt.jar;C:\axis\lib\saaj.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%

saaj.jar已经强制放在webservices.jar前边了,可是还是出现这个错误,我都要哭死了,请高人帮我解决一下啊!
2007-03-08 16:17 | linbh

# re: weblogic与axis之间向冲突  回复  更多评论   

我的MSN为linbh_jz@163.com,你的呢?能一起讨论一下吗?
2007-03-08 16:20 | linbh

# re: weblogic与axis之间向冲突  回复  更多评论   

你把jar发在最前面试试看,我们以前写的是这样的
set SERVER_NAME=myserver

set CLASSPATH=D:\ept\WEB-INF\lib\classes129_2_0_1.jar;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;%CLASSPATH%

@REM Call WebLogic Server

D:\ept\WEB-INF\lib\classes129_2_0_1.jar包就是连接数据jdbc的jar,后来发现再加axis就更多了就直接该的weblogic.xml文件了
2007-03-08 16:26 | 冷面阎罗

只有注册用户登录后才能发表评论。


网站导航: