本文介绍借助eclipse平台功能由wsdl文件生成soap服务桩代码,由soapui生成soap测试桩报文。此方案简单易用,可以快速调通流程。
一、借助Eclipse生成SOAP服务桩
1、eclipse平台新建Dynamic web project,将之前准备好的wsdl文件拷贝到工程根目录下。
2、新建web service,选“Top down Java bean Web Service”,Service definition选工程目录下的wsdl文件,service端选最高级,点击finish。如下图所示:
4、因为点击finish时会启动tomcat,请确保tomcat能够正常启动。
5、成功后,能看到src下生成了代码,webContent生成了wsdl文件,web.xml新增了webservice项等,如下图:
6、生成的代码中,我们注意一下XXXSoap11BindingImpl类,这个类是服务端接口的实现类,我们的服务逻辑是在这个类中完成的,现在我们做最简单的逻辑,只打印接收到的信息,如下代码:
package com.hy.service; public class StudentServiceSoap11BindingImpl implements com.hy.service.StudentServicePortType{ public void saveStudent(com.hy.bean.xsd.Student stu) throws java.rmi.RemoteException { System.out.println(stu.getId()); System.out.println(stu.getNumber()); System.out.println(stu.getName()); }
这样,wsdl文件搭建的SOAP服务桩就完成了,借助平台自动生成的类,wsdl文件等信息较多,其实这个创建过程eclipse帮忙做了很多事,但我们现在的目的是快速搭建服务桩,具体生成的文件,我们可以慢慢去研究,就不在这里讲解了。
二、借助SOAPUI生成SOAP测试桩
1、下载soapui软件,建议到官网下载。
2、新建工程时导入eclipse生成的wsdl文件,或是最先由axis2命令行生成的wsdl文件。
3、成功导入后,打开request,如下报文:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.hy.com" xmlns:xsd="http://bean.hy.com/xsd"> <soapenv:Header/> <soapenv:Body> <ser:saveStudent> <!--Optional:--> <ser:args0> <!--Optional:--> <xsd:id>11</xsd:id> <!--Optional:--> <xsd:name>Jetty huang</xsd:name> <!--Optional:--> <xsd:number>12001</xsd:number> </ser:args0> </ser:saveStudent> </soapenv:Body> </soapenv:Envelope>
4、填写正确的访问地址(在eclipse生成的wsdl文件中的地址才是正确的,可拷贝过来使用),点击发送。
5、查看服务端控制台,看输出的信息:
看到此信息,说明简单的soap服务桩、测试桩已经搭建完成,基本流程已跑通。