cxf客户端调用webservice报错:NoSuchMethod org.apache.commons.xml.XmlSchema.read
cxf客户端项目部署在weblogic中的时候,调用cxf webservice服务端接口时,出现如下错误:
在网上搜索过很多资料,说是jar 包版本过低,将XmlSchema-1.4.5.jar 包换成XmlSchema-2.0.1.jar 之后,还是不行。
原因是:weblogic在服务器上运行时使用的是jrokit的JDK,jrokit中已经有相关的jar包, 会优先加载jrokit/jre/lib目录下的jar包,
解决办法:
在weblogic的使用的JRockit的jre/lib目录下创建endorsed文件夹,
然后将XmlSchema-1.4.5.jar ,和geronimo-ws-metadata_2.0_spec-1.1.2.jar 两个jar放入endorsed文件夹内,
那么weblogic在启动的时候会优先加载endorsed文件中的这两个jar包。
如果上面的配置还是报错,就修改weblogic.xml 文件,将prefer-web-inf-classes 配置去掉。