最近在做一个JD项目,保密工作非常严格,所以涉及到业务的东西都不能也不敢向外面透露。但是技术上还是可以向外分享的。
这次的项目工作就是配合JD的C++原项目附加一个java的工作流模块。以前总是在java方向跑,对C++非常不熟悉,所以刚开始工作还是有不小的压力。但是有了这几年的项目经验,对业务理解还是很轻松的。
因为要配合JD的C++原项目附加java的工作流模块,所以我们这边的工作就分成两个部分,一部分是提供一个客户端调用(这个客户端是C++的dll),主要是完成C++和java的通信管理,也就是和我们理论上的面向对象的接口没有什么区别。另外一部分就是java实现工作流(这一块还要嵌入C++窗体中,主要是客户要求保持整个系统的页面风格),并且提供相应的webservice供给客户端系统调用。
java工作流引擎部分和客户端系统的交互这部分工作有两个方面,一个是通过webservice的方式来提供接口,客户端调用,并且打包成dll文件;另外一个方面就是C++客户端系统生成webservie,我用java来调用(为以后相关业务的处理做准备)。
业务理解清楚之后就开始coding了.java生成和发布webservice的方法和工具有很多,有的直接用注解@webservice、有的用cxf、还有的用axis和axis2的。我这里选择了axis2工具来实现的。
1. 部署Axis2,下载axis2放到tomcat下,启动tomcat生成axis2文件夹。
2. 配置web.xml。这个要把axisServet配置起来,让tomcat已启动就初始化
3. 讲axis2文件夹下的conf、modules、services考到你的项目中的web-inf下
4. 导入aixs2的jar包
5. 编写要发布的类
6. 之后要配置services.xml文件
7. 具体配置代码:
<service name="HelloWorld"> <description> HelloWorld Service Example </description> <parameter name="ServiceClass"> com.cm.service.HelloWorld </parameter> <operation name="sayHello"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPcmessageReceiver" /> </operation> <operation name="saySorry"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPcmessageReceiver" /> </operation> <operation name="getWorld"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> </operation> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPcmessageReceiver" /> </messageReceivers> </service>
8. 最后启动tomcat,打开浏览器输入url,查看webservice发布情况。
这样webservice提供的服务就做好了,剩下的就是等待C++调用了。
另外一部分就是java调用c++提供的webservice,这部分其实也是非常容易的,有很多种方式,我主要还是用的AXIS2来实现调用的。利用AXIS2实现调用的方法也很多,在这里就不赘言,自己上网查阅资料。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。