由于公司的需求,需要写几个银行接口写模拟器(Mock Server),此次接口需要发布成一个WEB Service。

一开始,我以为只要负责写接口的业务层就行了,具体的框架或是环境搭建可以不用管。在与开发沟通完之后,因为本人对Web Service发布也不懂,完全属于没有概念的那种,开发愿意帮忙搭建一个。

在此期间呢,我开始写业务层,把3个接口的业务层花了一天的时间写完了,加了一些数据库查询的方法以及数据库新的字段以满足此次的业务需求。

开发也把WEB Service的一个小Demo做好了,利用axis2发布Web Service. 我就照着开发的样子,在我们的Mock Server也配了一个,但是却起不来。

1. 错误一:Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer

网上搜集了一些资料,基本确认这个是由于jar包冲突造成的,经过很长一段时间调查,发现了这个是由于tomcat plugin和spring boot里面的一个jar包冲突了,后来在开发的帮忙下,在当前这个web service项目里面把spring boot给exclude掉。启动Web Service,无论如何,project就是起不来,网上搜索半天也找不出其原因。最后只能以最笨的办法来查这个问题。

  1. 先在pom文件里去掉axis2的所有依赖包,启动, 没有问题。
  2. 把axis2里面的依赖包,一个一个加,启动,直到找到问题的那个包。
  3. 找到了之后,尝试在这个包里面加了<scope>provided</scope>。启动,没有问题了,但是web service却是不能正常的发布了。

2. 错误二:ClassNotFoundException: org.apache.axis2.transport.http.AxisServlet

Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"

这下更没有想法了,加了provided,web service不能正常发布,没加,根本就启动不了,怎么办呢?

而且跟开发确认过了,这个包是很重要的包,一定会在运行的时候用到的,所以不能加provided,加了之后会找不到相应的类。

检查了所有的配置,都没有问题,最后带着一个心理,开发也建议我们用tomcat server而不要用tomcat plugin,因为很少人会用这个,所以带着一种死马当活马医的心态,就试了一把,结果成功了。原因应该是axis如果是用Intellij 里面的tomcat plugin去执行,会有问题,但是用本地的tomcat就没有问题。

这个事情从头到结束花了4天的时间。

总结:

1. 环境应该先搭建好,首先确保环境没有问题,然后再开始写业务层代码。

2. 在碰到环境问题的时候,还是以排除法一个个去看问题,找出问题所在。

3. 环境还是自己搭比较好,虽然感谢开发帮忙弄了一个小demo,但是问题还是很多,自己弄会更为熟悉点。

4. 学习到了不少配置web project的一些东西,如何做调试。以前纯做自动化测试的,没有这方面的经验。

新手Axis2 发布Web Service之路的更多相关文章

  1. Eclipse+tomcat+axis2进行web service部署

    用Eclipse+axis2+tomcat进行web service部署 2016-12-07 目录  1 安装JDK  1.1 下载JDK  1.2 安装和配置JDK  1.3 验证2 安装Ecli ...

  2. 使用Axis2创建Web Service

    Axis2是新一代Web Service开发工具,目前最新版本是1.5.本文主要介绍如何用Axis2创建Web Service. 首先下载二进制包和war包,将war包复制到Tomcat的webapp ...

  3. tomcat发布web service教程

    这几天一直在准备找工作,自学了关于web service的一些基本的内容,也遇到了不少问题.现在就把我自己学到的知识和大家分享一下,由于是初学,所以有什么错误的地方请大家帮忙指正,感激不尽~~!! 1 ...

  4. AXIS2调用web service,返回结果用GZIP解压缩

    import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...

  5. CXF之三 Tomcat中发布Web Service

    服务接口及实现类请参考CXF之一 创建Maven Web项目,在pom.xml中添加CXF和spring Web的引用,由于CXFServlet需要Spring Web的支持. <project ...

  6. Java主流Web Service框架介绍:CXF和Axis2

    CXF和Axis2是目前java平台上最主流的两个框架,虽然两个项目都隶属ASF,但却是基于不同思想和风格实现的,因此也各有所长.   CXF:http://cxf.apache.org/ 是由过去的 ...

  7. 如何创建和发布.asmx Web Service

    创建和发布Web ServiceWeb服务方法中可以返回一个DataSet对象 WEB服务可以说是下一代WEB应用程序的基础,无论客户端是WINDOWS应用.ASP.NET Web Form程序.甚至 ...

  8. Web service 框架比较CXF xfire aisx2 aisx

    Web 服务框架.它还体现了从 Axis 1.x 系列获得的经验和最近两年在 Web 服务领域的发展.推出 Axis2 的主要原因之一是从速度和内存方面获得更好的性能——不过还添加了一些新特性和功能. ...

  9. JAVA开发Web Service几种框架介绍

    郑重声明:此文为转载来的,出处已不知了,侵告删. 在讲Web Service开发服务时,需要介绍一个目前开发Web Service的几个框架,分别为Axis,axis2,Xfire,CXF以及JWS( ...

随机推荐

  1. APPIUM安装与搭建Q&A

    APPIUM安装与搭建Q&A Q1:在线安装TESTNG插件时,出现安装失败,提示:Cannot complete the install because one or more requir ...

  2. HDU 1589 Find The Most Comfortable Road 最小生成树+枚举

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. Ajax 下拉加载数据

    $(document).scroll(function() { var pageHeight = $(document).height()-$(window).height(); var bodySc ...

  4. [iOS]C语言技术视频-09-枚举的定义

    下载地址: 链接: http://pan.baidu.com/s/1o625Ee2 密码: 8kp5

  5. createNewFile()与createTempFile()的不同

    1, File 的 createNewFile() 方法:          createNewFile():返回值为 boolean:   方法介绍:当且仅当不存在具有此抽象路径名指定名称的文件时, ...

  6. 多年心愿,终于完成,热泪盈眶啊。。。Adrew NG 的 机器学习

    谢谢Andrew老师!谢谢Coursera!谢谢自己!希望这是一个好的开始!希望自己也能使用机器学习来make a better world...  

  7. (一)phoneGap之环境搭建教程及其example分析

    phoneGap之环境搭建教程及其example分析 一.环境搭建 与普通的开发android应用一样,phoneGap也同于原生android应用一样,环境相同,只是有部分不同,下面就我做理解,进行 ...

  8. seajs的常用api简易文档

    目前使用sea.js的公司越来越多, 比如朋友网,阿里巴巴,淘宝网,百姓网,支付宝,有道云笔记等.模块化的javascript开发带来了可维护,可扩展性,尤其在多人协作开发的时候不用再担心文件依赖和函 ...

  9. scp命令和sftp命令

    scp帮助命令: man scpscp功能:下载远程文件或者目录到本地,如果想上传或者想下载目录,最好的办法是采用tar压缩一下,是最明智的选择.从远程主机下载东西到本地电脑拷贝文件命令 scp us ...

  10. 基于Apache搭建Nagios图形监控

    基于apache 的稍微简单一点么?实验一下子就OK了... 环境: System: [root@losnau etc]# cat /etc/issueRed Hat Enterprise Linux ...