要在系统上增加几个Webservice接口调用的功能,也许对于经常使用Webservice的人来说没什么困难,可是我可是一直没有接触那个东西了。更困难的是,这个系统之前没有Webservice调用功能,也没有相应的java包,这个系统现在已经有二百多个java包了,一旦引起包冲突,那就更难办了。
其实每件事都有个过程,不管你做过没有。每件事都有个结果,不管你成功没有。
下面总结一下实现这个需求的一个过程:
1,首先确定业务需求。
将A系统中某数据传递到B系统,传递中有两个参数目录路径和发布单位是B系统提供树展示的数据,然后A系统展示并由客户选择,最后组装XML数据传递到B系统。其中会调用两套系统的接口。
2,技术实现,先做Demo。
之前也是玩过,不过是以前了,再说这东西都更新了老多了。我首先拿axis1做Demo,但是发现B系统接口是用axis2实现的,Demo调用好像有点问题。我又拿axis2做Demo,然后以A系统框架模式增加到项目中。最担心的问题还是出现了,包冲突。由于将来还要考虑更新,而大量的删除和增加包可能对原有系统造成影响,所以这个问题还是要认真去面对的。但是并不能发现包冲突的原因,为了赶时间先实现,我尽量少增加包,并删除重复包,最后在开发环境上是可以跑起来了。
3,将Demo和业务结合增加到系统中。
只有Helloworld是不行,需要应用到实际。在能够实现树的展示,Webservice调用等各项技术Demo和增加到项目中后,根据业务需求,设计需求实现的简便方式。包括XML组装与解析,配置文件读取,树的展示和数据取值,Webservice调用等的组合实现。系统中其他地方也会使用到该接口,所以我设计了通用调用方式,只要给我指定的实体设置值,传递给方法后就不用关心实现,只要接受参数判断是否成功,然后处理自己的业务就可以了。
4,初步联调测试,模拟真实环境。
在双方约定后布置开发使用的模拟环境,使用Linux,weblogic,Oracle等各项真实生产环境使用的版本。然后将各自程序打包部署调用看是否成功,如果有问题,双方都在,可以及时商讨和解决。这个过程我还是花了好长时间的,因为在tomcat上跑的程序,到weblogic上后又出现了包冲突,到apache官方bug库中查报错信息,是因为和weblogic.jar包引起的,要配置weblogic的启动顺序。可是我们的系统里面的许多标签实现都是基于该包的,其他未知情况就更多了,所以我不敢贸然增加这样的配置。
我咨询了接口提供者,以他们提供的调用方式进行调用,发现不会出现问题,于是我马上更改实现方式,由于XML组装解析和Webservice调用等功能都是我给包装好的,所以更改调用方式对于我的改动并不是那么大。
5,根据联调结果,适当调整。
比如我在测试时发现问题并更改了实现方式,那么我回去后代码的一些优化,检查还是必须的。另外,测试中也发现了一些业务上的不同意见,那么这是需要继续沟通和修改的。
6,真实环境上线调试。
无论你在你机器上实现是多么完美,无论你在测试环境运行是多么良好,真实环境,他有时候就是不给你面子。
所以我们要制作更新包,首先在自己的测试环境测试更新是否能成功,然后到生产环境进行更新,更新是要备份的这个大家都是知道的,不再啰嗦。如果生产环境更新后可以正常运行,那么恭喜你了。
?
?
?
?