CXF发布webservice在tomcat中没问题。
部署在Websphere中,直接访问WebServices没有问题,在访问?wsdl时出问题,问题出在wsdl4j-1.6.2.jar上面,也是ClassLoader的问题。
https://cwiki.apache.org/confluence/display/CXF20DOC/Application+Server+Specific+Configuration+Guide
给出了解决方案!
1、将wsdl4j-1.6.2.jar 放到 $WebSphere_HOME/java/jre/lib/endorsed 文件夹下。如果没有endorsed文件夹,新建一个。
2、在WebSphere console中,找到 应用程序 -à 企业应用程序
4、点击 类装入和更新检测
填写完红色方框的内容。
点击 应用
点击 保存到主配置
If you put your wsdl4j-1.6.1 jar in $WAS_HOME/java/jre/lib/endorsed, all your applications will depend on your version of wsdl4j.
Another solution is to create a new class loader in your server which loads before parent class loader, create a shared library with your version of wsdl4j, and add this shared library to your new class loader.
This version of wsdl4j will only be available for your specific server and not affect applications running in other servers.
推荐使用下面的方法
1、将wsdl4j-1.6.2.jar 放到 D:\soft\IBM\WebSphere\AppServer\endorsed 文件夹下。这个目录名称可以随便定义,下面要使用到这个目录。
2、在WebSphere console中,找到 环境 -à 共享库 进入如下页面
3、点击 新建 进入如下页面
说明:
类路径 是绝对路径
也可以使用
D:/soft/IBM/WebSphere/AppServer/endorsed/wsdl4j-1.6.2.jar
4、引用共享库
服务器-à应用程序服务器,点击server1 进入如下页面
5、点击 Java和进程管理-à类装入器,显示如下页面
6、 选择 类已装入并且是先使用应用程序类装入器 ,点击 应用 保存到主配置,进入如下界面
库名 选择新建的共享库名,点击 应用 保存到主配置
7、重启WebSphere服务