Java,AXIS,webService 调用 完整实例 xml 入参出参
生活随笔
收集整理的這篇文章主要介紹了
Java,AXIS,webService 调用 完整实例 xml 入参出参
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
* @param model* @return*/@ResponseBody@RequestMapping(value = "getDbPatientInfo" )public String listForGds(String message) {message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?standalone=\"yes\"?>"+ "<data>"+ "<funname>inspect_list</funname>"+ "<schedule_time_start>2016-08-01</schedule_time_start>"+ "<schedule_time_end>2017-08-01</schedule_time_end>"+ "</data>"+ "";try {String url = "http://localhost:7008/Service.svc?wsdl";//設置要調用的接口地址String nameSpace = "http://tempuri.org/";//命名空間 targetNamespace String funName = "funMain";//設置函數名 //創建服務Service service = new Service();Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url);call.setUseSOAPAction(true); //返回參數類型call.setReturnType(XMLType.XSD_STRING);call.setEncodingStyle("UTF-8");call.setReturnType(new QName("http://www.w3.org/2001/XMLSchema","string"));//設置返回參數 xmlns:s="http://www.w3.org/2001/XMLSchema"//設置要調用的接口方法call.setOperationName(new QName(nameSpace,funName));//設置函數名 call.setSOAPActionURI("http://tempuri.org/IService/funMain");//設置URI//Map<String, String> roleMap = new HashMap<String, String>();//roleMap.put("Password", "123456");//1把 從當前命名空間的 nameSpace 元素名是 MySoapHeader 的元素 添加到//SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(nameSpace,soapHeader);/*<s:element name="MySoapHeader" type="tns:MySoapHeader"/><s:complexType name="MySoapHeader"><s:sequence><s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/></s:sequence><s:anyAttribute/></s:complexType>*///2 更改接口部分內容/* for (Map.Entry<String, String> entry : roleMap.entrySet()){soapHeaderElement.addChildElement(entry.getKey()).setValue(entry.getValue());soapHeaderElement.addChildElement(entry.getKey()).setValue(entry.getValue());}soapHeaderElement.setNamespaceURI(nameSpace);call.addHeader(soapHeaderElement);*//*** 第一種 添加參數*/// 設置參數名:(message) 第二個參數表示String類型,第三個參數表示入參/*call.addParameter(new QName(nameSpace,"message"), XMLType.XSD_STRING, ParameterMode.IN);//返回參數類型call.setReturnType(XMLType.XSD_STRING);call.setEncodingStyle("UTF-8");String retVal = (String) call.invoke(new Object[]{message});logger.info(retVal); *//*** 第二種 添加參數*/List<Object> list = new ArrayList<Object>();Map<String,Object> map=new HashMap<String, Object>();map.put("message",message);//輸入參數值for (Map.Entry<String, Object> entry : map.entrySet()) {if (entry.getValue() instanceof String) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_STRING, ParameterMode.IN);} else if (entry.getValue() instanceof Long) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_LONG, ParameterMode.IN);} else if (entry.getValue() instanceof Double) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_DOUBLE, ParameterMode.IN);} else if (entry.getValue() instanceof Float) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_FLOAT, ParameterMode.IN);} else if (entry.getValue() instanceof Integer) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_INTEGER, ParameterMode.IN);} else if (entry.getValue() instanceof Date) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_DATETIME, ParameterMode.IN);} else if (entry.getValue() instanceof Boolean) {call.addParameter(new QName(nameSpace, entry.getKey()),XMLType.XSD_BOOLEAN, ParameterMode.IN);}list.add(entry.getValue());logger.info(entry.getKey() + "=======" + entry.getValue());}//返回參數類型call.setReturnType(XMLType.XSD_STRING);call.setEncodingStyle("UTF-8");//開始調用String result = (String) call.invoke(list.toArray());logger.info(result);} catch (Exception e) {e.printStackTrace();}return "";}
總結
以上是生活随笔為你收集整理的Java,AXIS,webService 调用 完整实例 xml 入参出参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】我用 PyTorch 复现了
- 下一篇: 鼠标有拖尾怎么办