TUhjnbcbe - 2024/9/16 16:52:00
业务场景:给一家公司的两个系统之间做部分数据做同步,A系统中进行业务操作后同步到B系统中,这样就不需要B系统再次进行操作了。开发方案:B系统搭建WebService服务器,A系统业务操作后通过发送请求将参数传入B系统中自动执行业务操作。第一步,搭建WebService服务,建立WebService接口及实现类:/***WebService接口*date年4月10日09:09:24*author拽拽很乖*/publicinterfaceIOrderPluginWebService{/***webService接口*author拽拽很乖*date年4月10日09:15:18*paramtype类型*parampk_order主键*return是否同步成功:*true同步成功*false同步失败*/publicbooleansendDataToOrderPlugin(Stringtype,String[]pk_order);}/***webService接口实现类*author拽拽很乖*date年4月10日09:27:18*/publicclassOrderReportWebServiceImplimplementsIOrderPluginWebService{OverridepublicbooleansendDataToOrderPlugin(Stringtype,String[]pk_order){//业务操作,逻辑处理}}因为本次主要说明WebService服务搭建以及连接,业务逻辑处理就不贴上来了。第二步、创建wsdl文件及upm文件:右键接口选择GenerateWSDL以及PublishWebService,创建好wsdl文件以及upm文件。当然也可以在接口上添加WebService注解,没有upm自动插件一般用注解。第三步:浏览器测试是否发布成功:启动服务端代码,打开IE浏览器输入地址测试,成功后就可以看到刚才发布的接口,点开后或看到如下图所示的xml格式网页,表示WebService接口发布成功。第四步:SOAPUI测试接口:打开soapUI工具,新建测试工程,右键Projects新建一个SOAP项目,projectname随意填写,WSDL写上述图所示浏览器中测试的带有?wsdl结尾的地址。填写参数后就可以测试了:启动后WebService实现类就可以接到测试额参数,至此,WebService服务端搭建成功。第五步:发送soap请求:/***发送SOAP请求*paramxmlStringXML文件*returnwebService返回结果*throwsException*author拽拽很乖*date年04月10日10:30:21*/privateStringsendPost(StringxmlString)throwsException{//HttpURLConnection发送SOAP请求URLurl=newURL(URL);HttpURLConnectionconn=(HttpURLConnection)url.openConnection();conn.setRequestProperty(Content-Type,text/xml;charset=utf-8);conn.setRequestMethod(POST);conn.setUseCaches(false);conn.setDoInput(true);conn.setDoOutput(true);conn.setConnectTimeout(30*);conn.setReadTimeout(30*);DataOutputStreamdos=newDataOutputStream(conn.getOutputStream());dos.write(xmlString.getBytes(utf-8));dos.flush();BufferedReaderreader=newBufferedReader(newInputStreamReader(conn.getInputStream(),utf-8));Stringline=null;StringBufferstrBuf=newStringBuffer();while((line=reader.readLine())!=null){strBuf.append(line);}dos.close();reader.close();returnstrBuf.toString();}其中参数XML就按照soapUI测试时的xml格式配置即可,需要传入的参数写入对应的位置即可,URL就是soapUI测试时的URL。/***webServiceURL*author拽拽很乖*date年4月10日10:36:13*/privatestaticfinalStringURL=