xfire与cxf冲突包解决方案【发布时异常注意】



xfire cxf冲突现象解决方案【项目发布中遇到的异常情况】

 

项目发布环境使用的是tomcat7

冲突说明项目发布在调用cxf动态客户端的时候出现没有找到编译器情况(Unable to create schema compiler

xfire与cxf冲突包解决方案【发布时异常注意】_第1张图片

就是系统运行时无法找到,tools.jar工具类中的编译器的方法导致无法编译动态生成客户端的情况。

 

一开始tomcat选择的是jdk下的/jre使用eclipsetomcat是可以正常运行的,一但将tomcat单独启动时用的jre换成默认运行的jre,那就开始报上面的错误了。以下是eclipse两种情况测试选项

xfire与cxf冲突包解决方案【发布时异常注意】_第2张图片

 

当时就想把 jdk下的/lib/tools.jar直接取过来放到WEB-INF/lib中去经测试也是无法调用。反复的折腾了好几次。

最后确定了tools.jar包放到了,jre下的/lib/tools.jar中去,将之前添加到WEB-INFO/lib中的tools.jar删掉。验证通过。

 

总结如下如果遇到以上情况,将tools.jar放到tomcat运行的“jre/lib”下即可。

通常我们在安装jdk的是候都会,另安装一个jre,这个jrewindow系统中是默认使用的jre,当我们tomcat没有指明jre的情况下默认直接使用的就是这后安装的这个jre,跟环境变量中配置的JAVA_HOME没有半毛钱关系。除非你指明tomcat使用的jrejdk中的jre,那同样将tools.jar放到jdk/jre/lib中即可。

注意:tools.jar不能重复放在tomcat下的任意lib[WEB-INFO/lib] ,否则无法正常调用。

 

你可能感兴趣的:(java)