首页 技术 正文
技术 2022年11月7日
0 收藏 961 点赞 636 浏览 1523 个字

由于公司的需求,需要写几个银行接口写模拟器(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的一些东西,如何做调试。以前纯做自动化测试的,没有这方面的经验。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,966
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,487
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,332
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,115
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,748
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,783