`

CXF 与 websphere 不兼容的处理方式

 
阅读更多

2天之前,我真的是一点都没有接触过webservice程序,直接造成了昨天的悲剧

 

昨天,由于项目中用到了CXF发布webservice应用,客户最终要部署要was7上面.

使用的CXF版本是2.4.1,在tomcat下测试都好好的,发布到was7上面就开始报错:

 

 java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory

 java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory

 

上网一查,说CXF与was7不兼容,要改....先冒一身冷汗,于是按照很多人网上所说的方法,改包,删包,往endorsed目录下塞包,修改was上面的虚拟机类加载机制,都试了个试,结果一个都没用....

 

期间由于更改类加载顺序,还引起了启动servlet根本无法被加载的问题

 

整个下午一直晕到死...

 

到了晚上,上面下了死命令,今天必须把兼容性搞定...实在没办法,根据有人给出的链接,到官网上查了一下,was7专门针对axis2与cxf的不兼容给出了解决方案.并且给出了一个测试war(ear)包,于是顶着3g上网卡超流量的风险,下载了30M的cxf测试ear包,发布到was7上,居然人家就可以发布成功!而我自己写的helloworld按照它官网给出的解决方案居然发布失败..

 

于是怒了,看了下人家的版本.是cxf2.1.3的,我用的是2.4.1的,不管了,改...

 

除了更换了CXF版本外,还在打出的war包的manifest.mf文件中增加了一行:

 

 

Manifest-Version: 1.0
DisableIBMJAXWSEngine: true
Class-Path: 
 

 

最后晚上10点半发布测试,成功搞定...Oh,My God, 赶紧打的走人,晚上还要赶回另外一个地点查找账务问题...悲催啊

 

 

IBM 官方链接为:

http://www.ibm.com/developerworks/websphere/library/techarticles/1001_thaker/1001_thaker.html

 

其中例子ear包就不在此上传了,,有22M, 只传pdf文档好了, 流量不多了...

 

分享到:
评论
7 楼 a5193806 2018-01-03  
IBM上面的这个PDF已经打不开,这里提供的pdf下载帮大忙了,里面列了详细哪几个包冲突:
• saaj-api.jar
• saaj-impl.jar
• xalan.jar
• xercesImpl.jar
• xml-apis.jar
• jaxb-api.jar
• jaxb-impl.jar
6 楼 honlin 2016-12-15  
将cxf降级为2.1.3后可以成功在websphere中部署了,但是webservice的客户端访问出现问题了。目前正在解决中,哎,这是一个互斥的问题啊。
5 楼 xiaobadi 2014-12-24  
哦,对了,我用是的was8。慢慢搞吧,哎
4 楼 xiaobadi 2014-12-24  
本来用的cxf2.7.1版本,放到WebSphere上报错,
下了这个demo也不行,郁闷死了。
NoClassDefFoundError: org.apache.cxf.BusFactory
org.apache.cxf.Messages != org.apache.cxf.APIMessages
at java.util.logging.Logger.getLogger(Logger.java:429)
明明有BusFactory 这个类的。
websphere 太恶心了
3 楼 k0521klb 2014-04-25  
cxf  太坑爹了,为啥自己要搞一套呢
2 楼 冰火人 2012-02-13  
http://cxf.apache.org/docs/application-server-specific-configuration-guide.html

CXF官方网站的
1 楼 冰火人 2012-02-13  


我这几天也是,搞这个东西,代码都没问题,tomcat上也正常,就是部署到websphere上就有问题,要么就是没反应

该设置的都设置了

还是报java.lang.IncompatibleClassChangeError: org.apache.neethi.AssertionBuilderFactory

看到你的这个,我试了一下,真的是没想到啊……

太感谢了!

相关推荐

    在WebSphere发布CXF注意事项

    确保CXF相关的JAR文件不与WebSphere自带的JAR文件冲突,避免在类路径中重复包含相同库。可以通过WebSphere的管理控制台调整类加载顺序,例如设置“parent last”策略,让WebSphere优先使用应用的类。 2. **...

    CXF support WAS Weblogic

    - 针对Oracle OC4J,需要特别处理stax-api的兼容性问题以及替换Oracle XML解析器为Xerces。 - 清除Oracle提供的JAX-WS库,使用CXF自带的相关库替代。 - **部署过程** - 根据所使用的应用服务器类型,按照特定...

    cxf-2.3.2.jar

    was不支持高版本的cxf,此版本的可以比较容易得到webSphere的兼容

    CXF文档介绍

    此外,CXF还强调易用性,提供了简洁的API和Maven插件简化集成,与Spring框架的无缝集成也是其一大亮点。 在协议和数据绑定方面,CXF支持SOAP 1.1和1.2,以及WS-I Basic Profile、WS-Security等标准。它能处理WSDL ...

    WebService_CXF范例.

    【WebService CXF详解与入门】 WebService是一种允许不同系统之间进行通信和交互的标准协议,它基于HTTP协议,使得应用程序可以无视具体实现细节地调用互联网上的服务。这种技术使得分布式应用程序的发展成为可能,...

    WebService-CXF学习.doc

    CXF 可以通过 HTTP、Servlet、JMS 等多种方式进行数据传输,并且能够灵活部署到轻量级容器(如 Tomcat)或 J2EE 应用服务器上,如 Geronimo、JOnAS、JBoss、WebLogic 和 WebSphere。 CXF 提供了广泛的编程语言支持...

    webservice五种发布方式及客户端调用.pdf

    不过,需要注意的是,CXF可能与某些特定JDK版本或应用服务器(如WebSphere AS 6.1.1)存在兼容性问题。比如,可能会遇到`java.lang.IncompatibleClassChangeError`,这通常是由于不同版本的jar包冲突导致的。解决...

    webservice四种发布方式及客户端调用

    - 在 WAS 6.1.1 上部署 CXF 时可能会遇到与特定 JAR 包版本的兼容性问题。解决方案通常涉及替换或升级相关 JAR 包。 #### 三、XFire 方式 **1. 概述** - XFire 是一款轻量级的 WebService 框架,以其简洁性和...

    webservice发布及调用

    然而,在某些情况下,可能会遇到 CXF 与特定环境(如 WebSphere 6.1.1)的兼容性问题。这些问题通常出现在特定的 JAR 包上,比如 “wsdl4j-1.6.2.jar”。 **解决方法:** - **创建 WAS 共享库:** 将有问题的 JAR ...

    WAS 发布 第三方WebService的配置文档

    - **构建和部署Axis2和CXFWebService应用**:详细介绍了如何构建Axis2和CXF应用,以及部署过程中可能遇到的常见问题和解决方法。 - **使用第三方JAX-WS运行时的限制和问题**:强调了使用第三方JAX-WS运行时部署应用...

    Mule in action下载(英文版)

    本书由David Dossot和John D'Emic共同撰写,旨在帮助开发者掌握Mule的核心功能与配置技巧,通过丰富的示例,展示了如何在实际项目中运用Mule进行高效的数据传输与处理。 ### 核心概念:Mule的解构 #### ESB与EAI...

    xfire发布和调用demo

    在描述中提到,开发者之前尝试使用CXF发布Web服务,但由于与IBM Websphere应用服务器存在兼容性问题,因此转向了Xfire。这可能是因为Xfire在当时的某些环境下更易于配置和集成,或者其API与Websphere的交互更为顺畅...

    在WAS环境下如何配置WebService资源[整理].pdf

    这些文件包括但不限于: - `D:\IBM\CXF\jaxb-api-2.1.jar` - `D:\IBM\CXF\jaxb-impl-2.1.9.jar` - `D:\IBM\CXF\wsdl4j-1.6.2.jar` - 操作时需要注意,不同类文件的路径应该使用分行来分割。 - **拷贝类路径文件...

Global site tag (gtag.js) - Google Analytics