* @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 "";}