无论是was7还是was8,在安装带有Axis2的应用时,都很容易出现jar冲突的情况,最常见的有以下:

E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet 错误]-[AxisServlet]: org.apache.axis2.deployment.DeploymentException: org.apache.commons.fileupload.FileUploadException

或者

E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[AxisServlet]: java.lang.ClassCastException: com.ibm.xml.xlxp2.api.wssec.WSSXMLInputFactory incompatible with javax.xml.stream.XMLInputFactory
was7比was8好解决一点,之前布署was7时大概查了两周资料才解决,后来迁到was8时,照was7的方法操作还是不行的,再查了一周资料才搞定,基本上,你看到这篇文章时,你在网上查的大部分文章、官网、资料我都有看过。

was版本 7  Axis2版本1.6.2

下面先从was7的解决方式开始说起

1:把modules下的六个文件

addressing-1.6.2.marmex-1.6.2.marmtompolicy-1.6.2.marping-1.6.2.marscripting-1.6.2.marsoapmonitor-1.6.2.mar

重命名后缀,把.mar改为.jar后放入应用lib目录下

addressing-1.6.2.jarmex-1.6.2.jarmtompolicy-1.6.2.jarping-1.6.2.jarscripting-1.6.2.jarsoapmonitor-1.6.2.jar

2:检查应用中是否有关于javaee的包,如

javaee*.jar
servlet-api-*.jar

有的话,删掉,打包时不要包含这些jar包,was容器中自带这些jar包了。

3:检查应用中是否有关于xmlbeans-*.jar的包,因为Axis2带有axis2-xmlbeans-1.6.2.jar了,所以有别的这样的包,也不用了。

4:最重要的一步

修改Classloader策略,企业应用程序 > 你的应用_war > 管理模块 > 你的应用.war

修改类装入器顺序 为: 类已装入并且是先使用本地类半入器(父类在后) ---相信英文版本也一眼就能看到 - -

行了,was7的现在启动就没问题了。

was7解决方案在IBM官方论坛有

http://www-01.ibm.com/support/docview.wss?mhq=axis2&mhsrc=ibmsearch_s&uid=swg21315686

现在进入更为麻烦的was8布署,环境为was8.5, Axis2仍为1.6.2

先得做完以上was7的操作。

在这里先列举一下我所看到的相关资料的解决方法

方案1 (最终结论非必须):

DisableIBMJAXWSEngine: true in the META-INF/MANIFEST.MF

方案2(与1应该是相同作用,最终结论非必须):
应用服务器--》yourserver-->java和进程管理 下的 进程定义--->其他属性下的 java虚拟机-->其他属性下的定制属性,
如果没有该属性,则新建之。
com.ibmcom.ibm.websphere.webservices.DisableIBMJAXWSEngine 为 true

方案3(我的应用没有,这个不知道):
删除了项目中的,如果有的话 webserviceclient.jar 和 aopalliance-1.0.jar

方案4(最终结论非必须):

将应用axis2.xml中的EnableChildFirstClassLoading 参数设为true

方案5 (好像也不是必须)

在安装war包的第一步操作里,把部署Web Service这个选项勾上。个人猜测这是was自己用来禁用自带webservice服务的选项,可能在一定程度上可以解决冲突。

方案6:最重要的一点

共享库解决方案。

冲突的jar包为axis2-adb-1.6.2.jar,把它放进共享库后,应用中的axis2-adb-1.6.2.jar也没必要删除,可删可不删。

建共享库时有很多细节需要注意,包不要放多了,也不能放少了,建完共享库后还要重启server生效,不止是应用,服务也是得重启的,节点倒是不用操作,这点非常重要!

下面开始建共享库以及引用共享库。

打开菜单环境 - 共享库 , 选好server作用域,如果是集群的话选集群配置,然后点新建菜单

接下来建立你的共享库,冲突的jar只有一个,axis2-adb-1.6.2.jar,注意选类加载隔离

然后很重要的一点要重启Server

菜单在服务器-服务器类型-

  • WebSphere Application Server

选中你应用部署的Server重启,让共享库生效。

然后进应用绑定共享库

绑定完后,后退就可以看到引用到共享库了。至此结束。

这时候启动应用,就正常了。

WAS运行时的类加载顺序,可以去下面这个菜单看看

企业应用程序 >你的应用_war > 管理模块 > 你的应用.war > 查看类装入器(选择服务器) > 类装入器查看器

可以导出文件看下

至此所有问题解决。

现在就只剩一个问题,是如何知道导致冲突的是axis2-adb-1.6.2.jar

WAS7和WAS8.5布署Axis2 webservice相关推荐

  1. VSTO 2005 项目的布署和运行

    服务器端建议: 最好不要发布到带有WSS/SPS的IIS上,因为那是一件相当麻烦的事: 最好使用标准的HTTP端口发布你的应用程序 应用程序发布时要特别注意manifest指向正确的位置,Web.Co ...

  2. 编写一份代码,支持多种布署方式

    对于一个CS程序, 可以直接连接数据库(方式一); 为了安全起见,可能会通过web service来获取数据(方式二),此时客户端程序在一台机器上, Web Service在另外一台机器上. 两者在代 ...

  3. axis2 webService开发 附深入理解 Java 垃圾回收机制

    相关文章: axis web服务(axis2安装和eclipse.tomcat结合开发) axis2 webService开发 axis2 webService开发(打包aar文件) 使用Axis2开 ...

  4. Django 布署6.5

    布署 从uwsgi.nginx.静态文件三个方面处理 服务器介绍 服务器:私有服务器.公有服务器 私有服务器:公司自己购买.自己维护,只布署自己的应用,可供公司内部或外网访问 公有服务器:集成好运营环 ...

  5. CentOS5.5环境下布署LVS+keepalived

    CentOS5.5环境下布署LVS+keepalived 2010-10-05 15:21:34 标签:负载均衡 LVS ipvsadm keepalived [推送到技术圈] 版权声明:原创作品,允 ...

  6. WCF布署问题1 :HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。...

    .Net3.5的WCF服务在IIS7中发布后,在IE中访问.svc文件出现以下错误: HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理. ...

  7. WCF布署问题 :HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。...

    下文作者当时用的是.Net Framework4.0 beta和vs.net 2010 beta2,而我遇到这个问题的时候,已经用上了正式版,问题一样,解决问题的方法也一样. .Net3.5的WCF服 ...

  8. DNS与Active Directory在两台服务器分别布署

    以前dns与Ad布署时,一般习惯布署在同一台服务器上.以下一个视频,就是把DNS与Active Directory分别布署在两台服务器上. DEMO使用的测试域名为:virbiznet.com(Vir ...

  9. com+ 三层布署[未成功验证]

    com+ 三层布署[未成功验证] com+ 三层布署[未成功验证] http://topic.csdn.net/u/20070910/10/f6c7614f-cdae-46a7-a9cd-87fdc6 ...

最新文章

  1. PHP从数据库获取的下拉树
  2. Android 性能分析工具dumpsys的使用(自己增加一部分在后面)
  3. VC++ 利用PDB和dump文件定位问题并进行调试
  4. 【杂文】企业数字化转型展望—角色转型
  5. OO真经——关于面向对象的哲学体系及科学体系的探讨(下)
  6. SpringBoot启动时实现自动执行代码的几种方式讲解
  7. c语言斐波那契数列前20项每行5个数,求c++:源程序。前20项斐波那契数列 ,要求输出的时候每行输出五个...
  8. Spring-外部配置的值是如何通过@Value注解获取的?
  9. 图书管理系统(大一C语言大作业 包含主要结构体,文件操作, 如数据的修改 查询 删除等)
  10. 计算机效果图线稿的制作方法,如何只用PS将线稿图变成高大上的效果图?
  11. 离线脱机版个人笔记软件的选择
  12. 手机app开发成本预算
  13. 格美家具网站项目总结
  14. 如何围绕自身打造个人IP,做长线引流布局?
  15. C#窗体应用程序之设置窗体名称和程序图标
  16. Parabola 抛物线-简单公式实现
  17. U3D AudioSource 完整音效截取部分
  18. DNS 的A记录、CNAME记录、mx记录
  19. 信息流广告投放相关概念与技术(DSP等,OCPA)
  20. 关于1000BASE-T1 1000BASE-TX和100BASE-T1

热门文章

  1. 哔哩哔哩 BV、AV互转 C#版
  2. Flink 结合 布隆过滤器(BloomFilter) 实现去重
  3. 怎么解决word中英文混合换行后字体间隔变大问题
  4. eclise导入已存在工程报 Faceted Project Problem 错误
  5. 为什么RISC-V中需要恒零寄存器?
  6. 几个简单好用的APP分享给你
  7. leetcode简单1742/867
  8. 电脑中的耳机插进去没有反应
  9. ioppc技术_广东电网有限责任公司河源供电局基于IOPPC线路光纤网络智能态势感知技术研究技术服务等5个项目采购公告...
  10. latex论文模板:中文小论文