websphere8.5 与cxf2.x冲突问题
一个客户was部署的小问题,记录一下。
问题现象
在我们的服务中用调用别人的webservice服务报错,框架用的cxf。
报错关键信息有:
E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet 错误]-[cvm_portal]: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceClient': FactoryBean threw exception on object creation; nested exception is org.apache.cxf.service.factory.ServiceConstructionException
Caused by: java.lang.ClassCastException: com.xxx.xx.userservice.TestInTableToTable$JaxbAccessorF_requestBody incompatible with com.sun.xml.bind.v2.runtime.reflect.Accessor
解决办法
- 加参数,设置JVM的参数为:-Dcom.ibm.websphere.webservices.DisableIBMJAXWSEngine=true
- 删除应用中的部分jar包,列表如下:
geronimo-stax-api_1.0_spec-1.0.1.jar
stax-utils-20060502.jar
geronimo-activation_1.1_spec-1.1.jar
jaxb-api-2.2.3.jar
jaxb-impl-2.2.4-1.jar
可以参见 https://stackoverflow.com/questions/31110951/apache-cxf-2-7-11-on-websphere-8-5
注意:
如果你的webservice的客户端 (或服务端,具体看你充当的是服务端还是客户端的角色)的类是用java6 编译的 那么,was 也需要用1.6的JDK,如果用1.8的JDK也会报错!
如果一定要用1.8 怎么办?
也有办法:
用1.8 报错的信息是:xxxx incompatible with com.sun.xml.internal.bind.v2.runtime.reflect.Accessor
- jaxb-api-2.2.3.jar jaxb-impl-2.2.4-1.jar 放回去,不要删除。
- 直接点击步骤导航中你的服务器的名字 返回刚才的 服务器基础结构/Java SDK 那一页
点击Java 和进程管理 展开 点击 进程定义 点击右上角 Java 虚拟机
在 通用 JVM 参数 一栏中 加上 -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true
注意 - 前面有个空格
- 停掉所有节点,重启服务(在环境上重启 不是在控制台 ),然后测试一下
参考 https://stackoverflow.com/questions/15569395/netbeans-with-jaxb-random-classcastexception-cannot-be-cast-to-com-sun-xml-bin/27118756#27118756
websphere8.5 与cxf2.x冲突问题的更多相关文章
- Alwayson的IP冲突
Alwayson的IP冲突 https://social.technet.microsoft.com/Forums/office/en-US/4d50cb1c-eef7-4dcc-b937-3c8eb ...
- jQuery UI与jQuery easyUI的冲突解决办法
jQuery UI与jQuery easyUI都是基于jQuery开发的.难免里面会有些方法名冲突! 因此对jQuery.easyui其中的两个方法名:resizable 和 draggable进行替 ...
- arcengine中自定义工具和自带工具条(ICommand)点击后和其他工具使用的冲突
自己系统中本身对于放大缩小等功能直接是单独重写的,但是如果在加一个工具条具有相同功能的话两者之间会有一些冲突,为解决该冲突可以重写工具条的OnItemClick事件 该工具条命名为axTool 我本身 ...
- 解决motools和jquery之间的冲突
在同一个页面需要同时使用motools和jquery,对于$,发生了冲突,以下是解决的办法. <head> <script src="./Scripts/lib/jquer ...
- 无法解决“Microsoft.SharePoint.Security, Version=15.0.0.0,”与“Microsoft.SharePoint.Security, Version=14.0.0.0”之间的冲突
VisualStudio 2013创建控制台项目,.NetFramework选为4.5.生成目标平台:x64.然后添加对Microsoft.SharePoint.dll的引用. 生成项目时," ...
- 拖拽手势和清扫手势冲突时(UIPanGestureRecognizer和UISwipeGestureRecognizer冲突时)
故事发生在这样的情境上:给整个控制器添加了一个拖拽手势,然后又在控制上的每个Cell上加了左滑清扫手势,然后问题来了:只有拖拽手势起作用,而左滑手势没有效果了,然后怎么解决这个问题呢!先上图: 当给整 ...
- [转载】——故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)
原文链接:https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrlstate=23w4l35u5_4&id=152393 ...
- overflow:hidden与margin:0 auto之间的冲突
相对于父容器水平居中的代码margin:0 auto与overflow:hidden之间存在冲突.当这两个属性同时应用在一个DIV上时,在chrome浏览器中将无法居中.至于为啥我也不明白.
- .Net中DLL冲突解决(真假美猴王)
<西游记>中真假美猴王让人着实难以区分,但是我们熟知了其中的细节也不难把他们剥去表象分别出来.对问题不太关心的可以直接调到文中关于.Net文件版本的介绍 问题 最近在编译AKKA.net ...
随机推荐
- Storm编程入门API系列之Storm的Topology多个Executors数目控制实现
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Wor ...
- Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照
转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...
- asp.net网页跳转
1.Response.Redirect("http://www.bcbbs.net",false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径.后面的bool ...
- React 实践记录 03 React router
Introduction 本文主要参考了react router 的官方文档. React Router是一套完整的配合React的路由解决方案,可能你已经知道前端路由,或者知道后端有路由的概念,如下 ...
- Java之内部类、包及代码块
个人通俗理解: 1.内部类:有点类似于写在父类中的子类,根据位置不一样为不同的名字,和相应的访问方式不同:不过要访问外部类的话,需要充分运用好this(本类)的这个关键字:要是需要快速的创建子类对象的 ...
- tomcat在idea中启动乱码
server,localhost log,catalina log分别乱码 打开tomcat/conf/目录下修改logging.properties 找到"utf-8"行更改为 ...
- [转]Fedora 下安装NVIDIA显卡驱动(使用后无法进入图形界面)
http://www.linuxidc.com/Linux/2014-04/100689.htm rpmfusion安装法: 相对于ATi,在Linux下安装NVIDIA就简单得多.只需要一个命令即可 ...
- sourceTree配置bitbucket
1. 为github增加账号信息 选择添加远程库 选择添加一个账号 输入用户名: 按照提示输入密码 选择bitbuchet为默认 选中搜索克隆
- Java-NestedClass(Interface).
内部类(Nested Class) 内部类:即在一个类中还包含着另外一个类,一般是作为匿名类或者是使用数据隐藏时使用的.例子: //内部类 class Out{ private int age = 1 ...
- UVa 12219 Common Subexpression Elimination (stl,模拟,实现)
一般来说,把一颗子树离散成一个int,把一个结点的字符离散成一个int会方便处理 直接map离散.当然一个结点最多只有4个小写字母,也可以直接编码成一个27进制的整数,舍掉0,为了区分0和0000. ...