axis服务发布或接口调用(IncompatibleClassChangeError)
最近做短信通知业务,直接调用服务接口,发送短信。
环境weblogic8.1.4,axis1.2.1或axis1.2.1RC,使用jubilder2006的axis的jar包。
在调用接口发送数据时,出现的错误就是java.lang.IncompatibleClassChangeError。换了好几种方式
都没有解决问题,最后在同事的帮助下,及早解决;否则不知道还的多少时间。
具体说我的调用服务的类是在axis1.2.1或axis1.2.1RC编译的,发布在logic8.1.4。
在soap解析我调用发送的数据事报错。具体说就是axis1.2的saaj.jar同weblogic的weblogic81/server/lib/webservices.jar中的soap解析有不一致,所以报错。具体的解决方式
就将weblogic81/server/lib/webservices.jar中javax/xml/soap删掉;然后再将axis1.2的
saaj.jar复制到weblogic81/server/lib/中。并在startWeblogic.cmd中将%WL_HOME%/server/lib/saaj.jar;
设置放到%WL_HOME%/server/lib/webservices.jar;的前面。就可解决问题,但环境仅限于
weblogic8.1.4和axis1.2;在这里仅作参考。
我在网上查到几种方式解决此问题,但都没有试验成功,需要你自己测试。这是由于webservice8.1中所带的webservices.jar和axis中的saaj.jar冲突引起的,解决方法有两个:1. 配置weblogic.xml,强制weblogic首先加载应用WEB-INF中的class <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor>2. 修改startweblogic.cmd,将axis下的saaj.jar的路径放在weblogic的webservices.jar之前。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。