这里给大家介绍一下,Java调用webservice的一个实例的过程。
本项目不能运行,因为接口地址不可用。
这里只是给大家介绍一个过程,同时留作自己的笔记。如果要学习,可以参照别人的实例。比较好。
①选择项目根目录的src ,右键,new --》 webservice client
然后输入地址:
http://172.18.100.52:456/hello?wsdl
必须要加wsdl结尾,这样才是一个webservice的接口。
finlish。这时候刷新项目。可以看到项目下/src/com/tem 下面生成了客户端的代码。
客户端就可以调用了。
准备参数:
public class PubController extends BaseMultiActionController{ //商户编码 private final String merchantId = "M14081916173300001"; //ip private final String merchantIP = "106.38.40.86"; //验证key private final String merchantKey = "d82f7b84baabf3989ad6da300ea8dad7"; private PubManager pubManager; public void setPubManager(PubManager pubManager) { this.pubManager = pubManager; } private BillManager billManager; public void setBillManager(BillManager billManager) { this.billManager = billManager; } /** * 商户信息查询接口 * @param request * @param response * @return * @throws Exception */ public void getScgdUser(HttpServletRequest request, HttpServletResponse response) throws Exception { AppClassGeneric<QueryCustomerRsp> appClass = new AppClassGeneric<QueryCustomerRsp>(); //参数 //查询条件之一:卡类型 String QueryType=ServletRequestUtils.getStringParameter(request,"QueryType"); //查询条件之二:对应的查询号 String QueryValue=ServletRequestUtils.getStringParameter(request,"QueryValue"); try { String svcCont = "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ "<QueryCustomerReq>"+ "<QueryValue>"+QueryValue+"</QueryValue>"+ "<QueryType>"+QueryType+"</QueryType>"+ "</QueryCustomerReq>"+ "]]>"; ServiceRequestVo serviceRequestVo = new ServiceRequestVo("SCVC001","T001",svcCont,null); serviceRequestVo.setSvcCont(svcCont); //获取签名,传递签名 String sign = getSign(serviceRequestVo); ServiceRequestVo serviceRequestVo2=pubManager.getScgdUser(serviceRequestVo,sign); String json=xmlStringToJson(serviceRequestVo2.getSvcCont().replace("<QueryCustomerRsp>", "").replace("</QueryCustomerRsp>","")); QueryCustomerRsp queryCustomerRsp= JSON.parseObject(json, QueryCustomerRsp.class); if (serviceRequestVo2.getResponse().getRspCode().equals("00000")) { appClass.setMessageStatus(MsgStatus.SUCCESS); appClass.setT(queryCustomerRsp); }else { appClass.setMessageStatus(MsgStatus.FAIL); appClass.setMessage(serviceRequestVo2.getResponse().getRspDesc()); } } catch (Exception e) { appClass.setMessageStatus(MsgStatus.FAIL); appClass.setMessage(e.getMessage()); e.printStackTrace(); } finally { JSONObject json = JSONObject.fromObject(appClass); response.setContentType("text/html;charset=UTF-8"); response.getWriter().print(json); response.getWriter().flush(); } }
使用本地生成的代码调用webservice接口:
public class PubManagerImpl implements PubManager{ //生成的webservice代理类。本地Java代码。 PubWebServicePortTypeProxy pubWebServicePortTypeProxy=new PubWebServicePortTypeProxy(); /** * 用户信息查询接口 * @throws RemoteException */ @Override public ServiceRequestVo getScgdUser(ServiceRequestVo serviceRequestVo,String sign) throws RemoteException { //调用webservice 接口中的方法。 return pubWebServicePortTypeProxy.scbss(serviceRequestVo,sign); }
时间: 2024-10-10 10:59:22