调用webservice接口的一些方法
发布时间:2020-12-16 23:19:16 所属栏目:安全 来源:网络整理
导读:1.使用xfire public void list(){//MdPsBaseInfoListService 接口类Service serviceModel = new ObjectServiceFactory().create(MdPsBaseInfoListService.class); XFire xfire = XFireFactory.newInstance().getXFire(); XFireProxyFactory factory = new XF
1.使用xfire public void list(){ //MdPsBaseInfoListService 接口类 Service serviceModel = new ObjectServiceFactory().create(MdPsBaseInfoListService.class); XFire xfire = XFireFactory.newInstance().getXFire(); XFireProxyFactory factory = new XFireProxyFactory(xfire); //接口调用的URL String serviceUrl = "http://192.168.1.231:8080/wqms/services/MdPsBaseInfoListService"; MdPsBaseInfoListService client = null; try { client = (MdPsBaseInfoListService) factory.create(serviceModel,serviceUrl); //调用方法,传入需要的参数,接收返回值 String s = client.getBaseInfoXml("合肥金鹰纸业有限公司","",""); System.out.println(s); } catch (MalformedURLException e) { e.printStackTrace(); } }需要知道接口类的名字,然后写一个接口类。 2.使用axis2 package com.thunisoft.hlwzbdb.mgr.business.ajgl.record; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; import org.apache.commons.lang.StringUtils; import com.thunisoft.hlwzbdb.mgr.business.ajgl.record.bean.AjBean; import com.thunisoft.hlwzbdb.mgr.business.ajgl.record.bean.RecordingResult; /** * Ajgl调用 WebService接口类 * 处理返回的数据 */ public class WsCallerAj { private static String wsdl = "http://172.16.7.226:5080/susong51/services/ajxxWebService/getAjList?jsonStr="; /** * 调用webservice接口 * */ public static String getInterface(String corpId,int page,int limit,String cAh,String ajMc,String dsrMc,String cbrMc){ JSONObject req = WsCallerAj.parseStr2Json(corpId,page,limit,cAh,ajMc,dsrMc,cbrMc); return querySuSong51(req,wsdl); } /** * 将参数拼接成json字符串 * @return */ public static JSONObject parseStr2Json(String fyid,String ah,String ajmc,String dsr,String cbr){ JSONObject json = new JSONObject(); json.put("fyid",fyid); json.put("page",page); json.put("limit",limit); if(StringUtils.isNotEmpty(ah)){ json.put("ah",ah); }else{ json.put("ah",""); } if(StringUtils.isNotEmpty(ajmc)){ json.put("ajmc",ah); }else{ json.put("ajmc",""); } if(StringUtils.isNotEmpty(dsr)){ json.put("dsr",ah); }else{ json.put("dsr",""); } if(StringUtils.isNotEmpty(cbr)){ json.put("cbr",cbr); }else{ json.put("cbr",""); } return json; } /** * 将json转换成list * @param str * @return */ @SuppressWarnings("unchecked") public static RecordingResult parseJson2List(String str){ JSONObject obj = JSONObject.fromObject(str); RecordingResult rr = new RecordingResult(); if(obj.getBoolean("success")){ rr.setSuccess(true); rr.setTotal(obj.getInt("total")); JSONArray ajList = obj.getJSONArray("ajList"); List<AjBean> ab = new ArrayList<AjBean>(); for(int i=0;i<ajList.size();i++){//循环第一层list JSONObject o = (JSONObject) ajList.get(i); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); AjBean a = new AjBean(); a.setBh(o.getString("bh")); a.setAh(o.getString("ah")); a.setAjmc(o.getString("ajmc")); try { a.setLarq(sdf.parse(o.getString("larq"))); } catch (ParseException e) { System.out.println("接收接口传过来的数据(larq)格式不正确!"); e.printStackTrace(); } a.setAydm(o.getInt("aydm")); a.setAymc(o.getString("aymc")); a.setCbts(o.getString("cbts")); a.setCbr(o.getString("cbr")); a.setDsr(o.getString("dsr")); if(o.containsKey("spzzcyList")){//判断是否存在第二层list JSONArray sp = o.getJSONArray("spzzcyList");//第二层list a.setSpzzcyList(sp); } ab.add(a); } rr.setAjList(ab); }else{ rr.setSuccess(false); rr.setMessage(obj.getString("message")); rr.setAjList(null); } return rr; } //axis2 public static String querySuSong51(JSONObject jsonStr,String wsdl) { EndpointReference targetEPR = new EndpointReference(wsdl); RPCServiceClient serviceClient = null; try { serviceClient = new RPCServiceClient(); } catch (AxisFault e) { e.printStackTrace(); } Options options = serviceClient.getOptions(); options.setTo(targetEPR); options.setAction("getAjList"); Object[] params = new Object[] { jsonStr.toString() }; //参数 System.out.println("参数转换为json格式:"+jsonStr.toString()); Class[] returnTypes = new Class[] { String.class }; QName opGetProUser = new QName("http://webservice.susong51.thunisoft.com","getAjList"); Object[] ret = null; try { ret = serviceClient.invokeBlocking(opGetProUser,params,returnTypes); } catch (AxisFault e) { e.printStackTrace(); } if(ret == null) { System.out.println("调用远程出错"); }else{ return ret[0].toString(); } return null; } }个人日记,有不对的地方请批评指正。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |