要在系统上增加几个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,真实环境上线调试。
无论你在你机器上实现是多么完美,无论你在测试环境运行是多么良好,真实环境,他有时候就是不给你面子。
所以我们要制作更新包,首先在自己的测试环境测试更新是否能成功,然后到生产环境进行更新,更新是要备份的这个大家都是知道的,不再啰嗦。如果生产环境更新后可以正常运行,那么恭喜你了。
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
在ARCGIS的二次开发中,一个常见的需求是通过ArcEngine的工具条添加图层要素。这涉及到如何在现有的地图界面上增加新的地理要素或图层。通常情况下,ArcEngine并没有直接提供这样的工具条来支持图层编辑,但开发者...
开发轻量级插件的关键在于保持专注,只提供必要的功能,让使用者可以根据自己的需求进行二次开发。这不仅可以提高插件的适用性,还能降低维护成本。同时,这种实践过程对于提升个人技术能力,理解软件设计原则具有极...
### 相关知识点 #### 一、项目背景与目标 **标题**:“中南大学仿‘滴滴...该项目不仅展示了移动应用开发的基础知识和技术,还涉及到了服务器端开发、数据库管理和软件架构设计等多个方面,是一次综合性的实践锻炼。
需要重用的功能应该放在模型中,而一次性或较少使用的逻辑则可以在控制器中实现。 - **保持一致性**:虽然在某些情况下M与C之间可以有一定程度的跨界使用,但从整体项目的角度出发,保持一致性的编码风格是非常重要...
### 二、信息技术在疫情防控中的应用 1. **远程医疗服务**:面对疫情,远程医疗服务成为减少面对面接触的有效手段之一。通过视频会议软件和技术平台,医生可以远程诊断患者病情,提供咨询服务。 2. **智能监控与...
本实验报告详细记录了个人博客系统的开发过程,从需求分析到系统测试,全面展示了从无到有构建一个博客平台的各个环节。报告采用JSP技术进行编写,旨在提供一个实践性的学习案例,帮助理解Web应用程序的开发流程。 ...
如hrm人事管理系统、乐购商城、山东武警整形医院网站和新城金锣官网,这些项目涵盖了二次开发、电商应用、内容管理和企业宣传等多种类型,他在项目中不仅提升了技术技能,也深化了对企业运营和客户需求的理解。...
又可以方便定义我们系统没有包含的各类客户业务单据,且这些单据可以任意集成在制药行业9.05版的各个模块中,在灵活应对客户多变的需求基础上,很大程度上解决代码级二次开发带来的开发效率、维护成本等问题;...
又可以方便定义我们系统没有包含的各类客户业务单据,且这些单据可以任意集成在制药行业9.05版的各个模块中,在灵活应对客户多变的需求基础上,很大程度上解决代码级二次开发带来的开发效率、维护成本等问题;...
又可以方便定义我们系统没有包含的各类客户业务单据,且这些单据可以任意集成在制药行业9.05版的各个模块中,在灵活应对客户多变的需求基础上,很大程度上解决代码级二次开发带来的开发效率、维护成本等问题;...
解决方案可能包括:与供应商协商取消未开始生产的订单,推迟已生产物料的交付,尝试将物料用于其他产品,争取客户赔偿,或者在无法避免损失的情况下,考虑物料的二次利用或回收。 2. 选择做采购的原因 做采购可以...
- **源码**:与“源代码”同义,表明这个软件是可以看到原始编程语言编写的代码的,有助于学习和二次开发。 - **留言板类**:这可能是指《Korean Diary》具有类似留言簿的功能,用户可以留下自己的笔记、感想或者与...
- **开发工具**:Dimps公司在开发过程中不仅致力于游戏本身,还投入精力使公司的程序库适应新一代游戏平台的需求(如PS3和Xbox 360)。为此,他们构建了一个名为“XG”的开发支持程序库,其中“X”代表了跨平台的...
综上所述,这个课程设计涵盖了软件工程的核心流程,从需求分析到系统设计,再到实现和测试,展示了软件开发的全貌,对于学习软件工程的学生来说是一次宝贵的实践经验。同时,通过这样的项目,学生能够深入理解数据库...
一方面,团队成员意识到现有知识体系的局限性,需要不断学习新知识来应对实际开发中的各种问题;另一方面,也体验到了团队合作的重要性,只有通过有效沟通和协作才能顺利完成项目任务。此外,还意识到软件开发不仅是...
物化法产生的废渣处理不当容易造成二次污染,生化法则受到菌种特性和处理条件的限制。例如,化能自养菌依赖矿物反应能量,而化能异养菌需要添加营养源,导致出水COD超标。植物吸收法则需要考虑植物体内砷含量及其...
7. **扩展性与定制化**:作为一个开源项目,Booky可能允许开发者进行二次开发,增加自定义插件或扩展功能,以适应更多用户需求。 在TypeScript的助力下,Booky的代码质量得到保证,减少了运行时错误,提高了整体的...
参与这个项目的开发让我深刻体会到团队合作的重要性,同时也学习到了如何将理论知识应用于实际开发中。通过不断的实践和探索,我对Java编程有了更深的理解,也更加自信地面对未来的挑战。 #### 五、教材与主要参考...
本报告旨在详尽地记录一次长时间的出差经历,包括出差的目的、地点、时间、达成的目标以及个人的感想和建议。这次出差的主要目标是针对特定的IT项目进行深入的沟通与合作。 一、出差目的地 本次出差的目的地是——...
这些工具在软件开发中扮演着重要角色,需要时间和实践来熟悉和精通。实验者指出,尽管完成了所有测试,但对某些命令的理解还不够深入,需要进一步学习和练习。 最后,实验感想部分表达了对实验系统和学习过程的认识...