Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByTreatmentNumDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByTreatmentNumDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByTreatmentNumDaoImpl.java (revision 31676)
@@ -0,0 +1,192 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.szszyy;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Node;
+import org.dom4j.XPath;
+
+import com.forgon.disinfectsystem.datasynchronization.dao.FindPatientInfoByTreatmentNumDao;
+import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO;
+import com.forgon.tools.db.DatabaseUtil;
+
+/**
+ * 根据诊疗号查询病人信息(深圳市中医院)
+ * @author ZhouPeiMian
+ * @since 2021-07-27
+ *
+ */
+public class FindPatientInfoByTreatmentNumDaoImpl implements
+ FindPatientInfoByTreatmentNumDao {
+
+ Logger logger = Logger.getLogger(FindPatientInfoByTreatmentNumDaoImpl.class);
+
+ @Override
+ public PatientInfoVO[] findPatientInfoByTreatmentNum(String clinicNumber) {
+ try {
+ String soapXml = WebServiceClientHelper.buildInputStr(DatasyncConstant.FunctionName_MZ, clinicNumber);
+ logger.info("门诊病人信息同步接口请求信息:" + soapXml);
+ String endpoint = DatasyncConstant.WebserviceAddress;
+ String targetNamespace = "http://www.dhcc.com.cn";
+ String soapActionURI = "http://www.dhcc.com.cn/DHC.Published.PUB0016.BS.PUB0016.HIPMessageServer";
+ String method = "HIPMessageServer";
+ String paramName1 = "input1";
+ String paramName2 = "input2";
+ String encodingStyle = "utf-8";
+ String result = WebServiceClientHelper.axisInvokeWebservice(endpoint, targetNamespace, soapActionURI, method, paramName1, paramName2, DatasyncConstant.FunctionName_MZ, soapXml, encodingStyle);
+ logger.info("门诊病人信息同步接口返回信息:" + result);
+ /*String result = ""
+ + "0"
+ + "成功"
+ + ""
+ + "- "
+ + "03179318"
+ + "杨利仲"
+ + "21岁9月20天"
+ + "男"
+ + ""
+ + "孙志涛"
+ + "急诊外科"
+ + ""
+ + "2017-08-03"
+ + "13634557"
+ + ""
+ + "
"
+ + ""
+ + "";
+ logger.info("门诊病人信息同步接口返回信息:" + result);*/
+ logger.info("病人信息同步接口返回信息:" + result);
+ int startIndex = result.indexOf("");
+ if(startIndex == -1){
+ logger.info("门诊病人接口返回信息没有标签!");
+ return null;
+ }
+ int endIndex = result.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ logger.info("门诊病人接口返回信息没有标签");
+ return null;
+ }
+ String xmlString = result.substring(startIndex + "".length(), endIndex);
+ if(StringUtils.isBlank(xmlString)){
+ logger.info("门诊病人接口返回信息为空!" + xmlString);
+ return null;
+ }
+ xmlString = "" + xmlString + "";
+ Document document = DocumentHelper.parseText(xmlString);
+ // 查询结果
+ String resultCodeXpath = "/Response/ResultCode";
+ String resultCotentXpath = "/Response/ResultCotent";
+ String resultCode = WebServiceClientHelper.processDataByXpath(document, resultCodeXpath);
+ String resultCotent = WebServiceClientHelper.processDataByXpath(document, resultCotentXpath);
+ if(!StringUtils.equals(resultCode, DatasyncConstant.SuccessCode)){
+ logger.info("门诊病人接口查询失败:" + resultCotent);
+ return null;
+ }
+ String itemXpath = "/Response/items/item"; // 返回结果可能存在多条门诊病人信息
+ XPath xpath = document.createXPath(itemXpath);
+ @SuppressWarnings("unchecked")
+ List nodeList = xpath.selectNodes(document, xpath);
+ if(CollectionUtils.isNotEmpty(nodeList)){
+ List patientInfoVOList = new ArrayList();
+ for (int i = 1; i <= nodeList.size(); i++) {
+ String msgXpath = "/Response/items/item[" + i + "]";
+ // 门诊号
+ String clinicNumberXpath = msgXpath + "/clinicNumber";
+ // 病人姓名
+ String patientNameXpath = msgXpath + "/patientName";
+ // 病人年龄
+ String patientAgeXpath = msgXpath + "/patientAge";
+ // 病人性别
+ String patientSexXpath = msgXpath + "/patientSex";
+ // 病人身份证号
+ String patientIDCardXpath = msgXpath + "/patientIDCard";
+ // 就诊日期
+ String operationTimeXpath = msgXpath + "/visitDate";
+ // 病人床位号
+ String bedNumberXpath = msgXpath + "/bedNumber";
+ // 所属科室
+ String ascriptionDepartmentXpath = msgXpath + "/ascriptionDepartment";
+ // 就诊次数
+ String visitIdXpath = msgXpath + "/visitId";
+
+ String clinicNum = WebServiceClientHelper.processDataByXpath(document, clinicNumberXpath);
+ String patientName = WebServiceClientHelper.processDataByXpath(document, patientNameXpath);
+ String patientAge = WebServiceClientHelper.processDataByXpath(document, patientAgeXpath);
+ String patientSex = WebServiceClientHelper.processDataByXpath(document, patientSexXpath);
+ String patientIDCard = WebServiceClientHelper.processDataByXpath(document, patientIDCardXpath);
+ String operationTime = WebServiceClientHelper.processDataByXpath(document, operationTimeXpath);
+ String bedNumber = WebServiceClientHelper.processDataByXpath(document, bedNumberXpath);
+ String ascriptionDepartment = WebServiceClientHelper.processDataByXpath(document, ascriptionDepartmentXpath);
+ String visitId = WebServiceClientHelper.processDataByXpath(document, visitIdXpath);
+
+ PatientInfoVO patientInfoVO = new PatientInfoVO();
+ patientInfoVO.setClinicNumber(clinicNum);
+ patientInfoVO.setPatientName(patientName);
+ patientInfoVO.setPatientAge(patientAge);
+ patientInfoVO.setPatientSex(patientSex);
+ patientInfoVO.setPatientIDCard(patientIDCard);
+ patientInfoVO.setOperationTime(operationTime);
+ patientInfoVO.setBedNumber(bedNumber);
+ patientInfoVO.setAscriptionDepartment(ascriptionDepartment);
+ if(DatabaseUtil.isPoIdValid(visitId)){
+ patientInfoVO.setVisitId(Long.parseLong(visitId));
+ }
+
+ patientInfoVOList.add(patientInfoVO);
+ }
+
+ if (CollectionUtils.isNotEmpty(patientInfoVOList)) {
+ // 根据记录手术时间operationTime排序,只取最新记录
+ patientInfoVOList.sort(new Comparator() {
+ @Override
+ public int compare(PatientInfoVO o1, PatientInfoVO o2) {
+ if (StringUtils.isBlank(o1.getOperationTime()) && StringUtils.isNotBlank(o2.getOperationTime())) {
+ return -1;
+ }
+ if (StringUtils.isBlank(o2.getOperationTime()) && StringUtils.isNotBlank(o1.getOperationTime())) {
+ return 1;
+ }
+ if (StringUtils.isBlank(o1.getOperationTime()) && StringUtils.isBlank(o2.getOperationTime())){
+ return 0;
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ Date date1 = sdf.parse(o1.getOperationTime());
+ Date date2 = sdf.parse(o2.getOperationTime());
+ return date2.compareTo(date1);
+ } catch (ParseException e) {
+ logger.debug("病人信息排序出错(手术时间【visitDate】字段格式错误)!");
+ e.printStackTrace();
+ }
+ return 0;
+ }
+ });
+ // 只取最新录入的一条记录
+ PatientInfoVO patientInfoVO = patientInfoVOList.get(0);
+ logger.debug("完成门诊病人信息解析,病人门诊号为:" + patientInfoVO.getHospitalNumber());
+ PatientInfoVO[] patientInfoArray = {patientInfoVO};
+ return patientInfoArray;
+ }
+ }
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("根据病人门诊号查询病人信息失败" + exception);
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/DatasyncConstant.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/DatasyncConstant.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/DatasyncConstant.java (revision 31676)
@@ -0,0 +1,31 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.szszyy;
+
+/**
+ * 深圳市中医院接口相关常量
+ * @author ZhouPeiMian
+ * @since 2021-07-26
+ *
+ */
+public class DatasyncConstant {
+
+ /**
+ * 门诊病人接口地址:http://172.18.0.60/csp/hsb/DHC.Published.PUB0016.BS.PUB0016.cls
+ */
+ public final static String WebserviceAddress = "http://172.18.0.60/csp/hsb/DHC.Published.PUB0016.BS.PUB0016.cls";
+
+ /**
+ * 获取门诊病人信息的方法名称(入参)
+ */
+ public final static String FunctionName_MZ = "MES0220";
+
+ /**
+ * 获取住院病人信息的方法名称(入参)
+ */
+ public final static String FunctionName_ZY = "MES0221";
+
+ /**
+ * 接口调用成功的编码
+ */
+ public final static String SuccessCode = "0";
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByHospitalNumDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByHospitalNumDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByHospitalNumDaoImpl.java (revision 31676)
@@ -0,0 +1,210 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.szszyy;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Node;
+import org.dom4j.XPath;
+
+import com.forgon.disinfectsystem.datasynchronization.dao.FindPatientInfoByHospitalNumDao;
+import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO;
+import com.forgon.tools.db.DatabaseUtil;
+
+/**
+ * 根据住院号查询病人信息(深圳市中医院)
+ * @author ZhouPeiMian
+ * @since 2021-07-27
+ *
+ */
+public class FindPatientInfoByHospitalNumDaoImpl implements
+ FindPatientInfoByHospitalNumDao {
+
+ Logger logger = Logger.getLogger(FindPatientInfoByHospitalNumDaoImpl.class);
+
+ @Override
+ public PatientInfoVO[] findPatientInfoByHospitalNum(String hospitalNum) {
+ try {
+ String soapXml = WebServiceClientHelper.buildInputStr(DatasyncConstant.FunctionName_ZY, hospitalNum);
+ logger.info("住院病人信息同步接口请求信息:" + soapXml);
+ String endpoint = DatasyncConstant.WebserviceAddress;
+ String targetNamespace = "http://www.dhcc.com.cn";
+ String soapActionURI = "http://www.dhcc.com.cn/DHC.Published.PUB0016.BS.PUB0016.HIPMessageServer";
+ String method = "HIPMessageServer";
+ String paramName1 = "input1";
+ String paramName2 = "input2";
+ String encodingStyle = "utf-8";
+ String result = WebServiceClientHelper.axisInvokeWebservice(endpoint, targetNamespace, soapActionURI, method, paramName1, paramName2, DatasyncConstant.FunctionName_ZY, soapXml, encodingStyle);
+ logger.info("病人信息同步接口返回信息:" + result);
+ /*String result = ""
+ + "0"
+ + "成功"
+ + ""
+ + "- "
+ + "00000305"
+ + "13505405"
+ + "王燕"
+ + "49岁2月25天"
+ + "女"
+ + "440301196805167820"
+ + "胡越"
+ + "全子宫切除术"
+ + "2017-07-17"
+ + "妇科病区"
+ + "妇科护士站"
+ + ""
+ + ""
+ + "
"
+ + ""
+ + "";
+ logger.info("病人信息同步接口返回信息:" + result);*/
+ int startIndex = result.indexOf("");
+ if(startIndex == -1){
+ logger.info("住院病人接口返回信息没有标签!");
+ return null;
+ }
+ int endIndex = result.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ logger.info("住院病人接口返回信息没有标签");
+ return null;
+ }
+ String xmlString = result.substring(startIndex + "".length(), endIndex);
+ if(StringUtils.isBlank(xmlString)){
+ logger.info("住院病人接口返回信息为空!" + xmlString);
+ return null;
+ }
+ xmlString = "" + xmlString + "";
+ Document document = DocumentHelper.parseText(xmlString);
+ // 查询结果
+ String resultCodeXpath = "/Response/ResultCode";
+ String resultCotentXpath = "/Response/ResultContent";
+ String resultCode = WebServiceClientHelper.processDataByXpath(document, resultCodeXpath);
+ String resultCotent = WebServiceClientHelper.processDataByXpath(document, resultCotentXpath);
+ if(!StringUtils.equals(resultCode, DatasyncConstant.SuccessCode)){
+ logger.info("住院病人接口查询失败:" + resultCotent);
+ return null;
+ }
+ String itemXpath = "/Response/items/item"; // 返回结果可能存在多条住院病人信息
+ XPath xpath = document.createXPath(itemXpath);
+ @SuppressWarnings("unchecked")
+ List nodeList = xpath.selectNodes(document, xpath);
+ if(CollectionUtils.isNotEmpty(nodeList)){
+ List patientInfoVOList = new ArrayList();
+ for (int i = 1; i <= nodeList.size(); i++) {
+ String msgXpath = "/Response/items/item[" + i + "]";
+ // 住院号
+ String hospitalNumberXpath = msgXpath + "/hospitalNumber";
+ // 病人姓名
+ String patientNameXpath = msgXpath + "/patientName";
+ // 病人年龄
+ String patientAgeXpath = msgXpath + "/patientAge";
+ // 病人性别
+ String patientSexXpath = msgXpath + "/patientSex";
+ // 病人身份证号
+ String patientIDCardXpath = msgXpath + "/patientIDCard";
+ // 医生姓名
+ String doctorNameXpath = msgXpath + "/doctorName";
+ // 手术名称
+ String operationXpath = msgXpath + "/operation";
+ // 手术时间
+ String operationTimeXpath = msgXpath + "/operationTime";
+ // 病人所属病区
+ String patientAreaXpath = msgXpath + "/patientArea";
+ // 病人床位号
+ String bedNumberXpath = msgXpath + "/bedNumber";
+ // 所属科室
+ String ascriptionDepartmentXpath = msgXpath + "/ascriptionDepartment";
+ // 住院次数
+ String visitIdXpath = msgXpath + "/visitId";
+
+ String hospitalNumber = WebServiceClientHelper.processDataByXpath(document, hospitalNumberXpath);
+ String patientName = WebServiceClientHelper.processDataByXpath(document, patientNameXpath);
+ String patientAge = WebServiceClientHelper.processDataByXpath(document, patientAgeXpath);
+ String patientSex = WebServiceClientHelper.processDataByXpath(document, patientSexXpath);
+ String patientIDCard = WebServiceClientHelper.processDataByXpath(document, patientIDCardXpath);
+ String doctorName = WebServiceClientHelper.processDataByXpath(document, doctorNameXpath);
+ String operation = WebServiceClientHelper.processDataByXpath(document, operationXpath);
+ String operationTime = WebServiceClientHelper.processDataByXpath(document, operationTimeXpath);
+ String patientArea = WebServiceClientHelper.processDataByXpath(document, patientAreaXpath);
+ String bedNumber = WebServiceClientHelper.processDataByXpath(document, bedNumberXpath);
+ String ascriptionDepartment = WebServiceClientHelper.processDataByXpath(document, ascriptionDepartmentXpath);
+ String visitId = WebServiceClientHelper.processDataByXpath(document, visitIdXpath);
+
+ PatientInfoVO patientInfoVO = new PatientInfoVO();
+ patientInfoVO.setHospitalNumber(hospitalNumber);
+ patientInfoVO.setPatientName(patientName);
+ patientInfoVO.setPatientAge(patientAge);
+ patientInfoVO.setPatientSex(patientSex);
+ patientInfoVO.setPatientIDCard(patientIDCard);
+ patientInfoVO.setDoctorName(doctorName);
+ patientInfoVO.setOperation(operation);
+ patientInfoVO.setOperationTime(operationTime);
+ patientInfoVO.setPatientArea(patientArea);
+ patientInfoVO.setBedNumber(bedNumber);
+ patientInfoVO.setAscriptionDepartment(ascriptionDepartment);
+ if(DatabaseUtil.isPoIdValid(visitId)){
+ patientInfoVO.setVisitId(Long.parseLong(visitId));
+ }
+
+ patientInfoVOList.add(patientInfoVO);
+ }
+ if (CollectionUtils.isNotEmpty(patientInfoVOList)) {
+ // 根据记录手术时间operationTime排序,只取最新记录
+ patientInfoVOList.sort(new Comparator() {
+ @Override
+ public int compare(PatientInfoVO o1, PatientInfoVO o2) {
+ if (StringUtils.isBlank(o1.getOperationTime()) && StringUtils.isNotBlank(o2.getOperationTime())) {
+ return -1;
+ }
+ if (StringUtils.isBlank(o2.getOperationTime()) && StringUtils.isNotBlank(o1.getOperationTime())) {
+ return 1;
+ }
+ if (StringUtils.isBlank(o1.getOperationTime()) && StringUtils.isBlank(o2.getOperationTime())){
+ return 0;
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ Date date1 = sdf.parse(o1.getOperationTime());
+ Date date2 = sdf.parse(o2.getOperationTime());
+ return date2.compareTo(date1);
+ } catch (ParseException e) {
+ logger.debug("病人信息排序出错(手术时间【operationTime】字段格式错误)!");
+ e.printStackTrace();
+ }
+ return 0;
+ }
+ });
+ // 只取最新录入的一条记录
+ PatientInfoVO patientInfoVO = patientInfoVOList.get(0);
+ logger.debug("完成住院病人信息解析,病人住院号为:" + patientInfoVO.getHospitalNumber());
+ PatientInfoVO[] patientInfoArray = {patientInfoVO};
+ return patientInfoArray;
+ }
+ }
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("根据病人住院号查询病人信息失败" + exception);
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ @Override
+ public PatientInfoVO[] findPatientInfoByHospitalNumBeforeOperation(
+ String hospitalNum) {
+ return findPatientInfoByHospitalNum(hospitalNum);
+ }
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/HIS.xml
===================================================================
diff -u -r28299 -r31676
--- ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/HIS.xml (.../HIS.xml) (revision 28299)
+++ ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/HIS.xml (.../HIS.xml) (revision 31676)
@@ -51,10 +51,8 @@
-
-
-
+
-
+
\ No newline at end of file
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/WebServiceClientHelper.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/WebServiceClientHelper.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/WebServiceClientHelper.java (revision 31676)
@@ -0,0 +1,103 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.szszyy;
+
+import javax.xml.namespace.QName;
+import org.apache.axis.client.Call;
+import org.apache.axis.client.Service;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.Node;
+import org.dom4j.XPath;
+import com.forgon.exception.SystemException;
+
+/**
+ * 深圳市中医院webservice帮助类
+ * @author ZhouPeiMian
+ * @since 2021-07-26
+ *
+ */
+public class WebServiceClientHelper {
+
+ public static Logger logger = Logger.getLogger(WebServiceClientHelper.class);
+
+ /**
+ * 根据document和Xpath表达式解析数据
+ * @param document
+ * @param nameSpaceURIMap
+ * @param xpathExp
+ * @return
+ */
+ public static String processDataByXpath(Document document, String xpathExp) {
+ if ((StringUtils.isNotBlank(xpathExp)) && (document != null)) {
+ XPath xpath = document.createXPath(xpathExp);
+ Node node = xpath.selectSingleNode(document);
+ if (node != null) {
+ return node.getStringValue();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 构建请求信息
+ **/
+ public static String buildInputStr(String function, String value){
+ StringBuffer inputSb = new StringBuffer();
+
+ if(StringUtils.equals(function, DatasyncConstant.FunctionName_MZ)){
+ //inputSb.append("" + value + "");
+ inputSb.append("");
+ inputSb.append("" + value + "");
+ inputSb.append("");
+ return inputSb.toString();
+ }else if(StringUtils.equals(function, DatasyncConstant.FunctionName_ZY)){
+ inputSb.append("");
+ inputSb.append("" + value + "");
+ inputSb.append("");
+ return inputSb.toString();
+ }else{
+ throw new SystemException("FunctionName错误:" + function);
+ }
+ }
+
+ /**
+ * axis调用webservice
+ * @param endpoint
+ * @param targetNamespace 命名空间,在WSDL中对应的标签是:targetNamespace
+ * @param soapActionURI 具体方法的调用URI,在WSDL中对应的标签是:
+ * @param method 具体调用的方法名,在WSDL中对应的标签是:
+ * @param paramName 调用接口的参数的名字
+ * @param input 参数值
+ * @param encodingStyle 字符集"utf-8"
+ * @return
+ * @throws Exception
+ */
+ public static String axisInvokeWebservice(String endpoint, String targetNamespace, String soapActionURI, String method,
+ String paramName1, String paramName2, String input1, String input2, String encodingStyle) throws Exception {
+ String param1 = input1;
+ String param2 = input2;
+ logger.info("input1 : " + param1);
+ logger.info("input2 : " + param2);
+ Service service = new Service();
+ Call call = (Call) service.createCall();
+ //call.setTimeout(new Integer(20000)); //设置超时时间
+ call.setSOAPActionURI(soapActionURI);
+ call.setTargetEndpointAddress(new java.net.URL(endpoint)); //设置目标接口的地址
+ call.setEncodingStyle(encodingStyle);//设置传入服务端的字符集格式如utf-8等
+ call.setOperationName(new QName(targetNamespace, method));// 具体调用的方法名,可以由接口提供方告诉你,也可以自己从WSDL中找
+ call.setUseSOAPAction(true);
+ call.addParameter(paramName1,
+ org.apache.axis.encoding.XMLType.XSD_STRING,
+ javax.xml.rpc.ParameterMode.IN);// 接口的参数
+ call.addParameter(paramName2,
+ org.apache.axis.encoding.XMLType.XSD_STRING,
+ javax.xml.rpc.ParameterMode.IN);// 接口的参数
+ call.setReturnClass(java.lang.String.class); //返回字符串类型
+ // 给方法传递参数,并且调用方法 ,如果无参,则new Obe
+ String result = (String)call.invoke(new String[] {param1, param2});
+ // 打印返回值
+ logger.info("result is " + result);
+ return result;
+ }
+
+}