1.接口服务端
1.1.springmvc搭建好框架。
1.2.Controller(控制类)创建 【PubHealthController】
package com.oracle.sx.businessData.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONObject;
import com.common.util.CommonConst.METHOD_NAME;
import com.oracle.sx.basicData.service.IDepartmentInfoService;
import com.oracle.sx.basicData.service.IHoldInfoService;
import com.oracle.sx.basicData.service.IMechanismInfoService;
import com.oracle.sx.basicData.service.IPersonService;
import com.oracle.sx.businessData.service.IChildHealthCheckService;
import com.oracle.sx.businessData.service.IChildrenHealthCareService;
import com.oracle.sx.businessData.service.IChronicDiseaseRecordService;
import com.oracle.sx.businessData.service.IHealthAssessmentService;
import com.oracle.sx.businessData.service.IHealthEducationRecordService;
import com.oracle.sx.businessData.service.IHealthRecordInfoService;
import com.oracle.sx.businessData.service.IPsychiatricManagementService;
import com.oracle.sx.businessData.service.IWomenHealthCareService;
/**
* 公共控制类
*
* @author Administrator
*
*/
@Controller
@RequestMapping("/jsp")
public class PubHealthController {
private static final Logger log = Logger.getLogger(PubHealthController.class);
@Resource
private IMechanismInfoService mechanismInfoService; // 机构服务类
@Resource
private IChildrenHealthCareService childrenHealthCareService; // 儿童保健
@RequestMapping(value = "invoke", method = RequestMethod.POST)
@ResponseBody
public void invoke(HttpServletRequest request, HttpServletResponse response) {
try {
response.setContentType("application/json; charset=utf-8");
response.setCharacterEncoding("UTF-8");
String objjson = request.getParameter("json");
log.info("进入方法......");
log.info("前端json:" + objjson);
String jsonStr = this.getData(objjson);
log.info("返回json:" + jsonStr);
PrintWriter out = response.getWriter();
out.write(jsonStr);
} catch (IOException e) {
e.printStackTrace();
log.info("接口异常信息:" + e);
}
}
/**
* 解析客户获取的json数据
*
* @param objectJson
* 客户端传入的json数据
*/
public String getData(String objectJson) {
String objStr = "";
try {
// 将json字符串转换为json对象
JSONObject jsonObj = new JSONObject();
jsonObj = (JSONObject) JSONObject.parse(objectJson);
jsonObj.get("method");
log.info("method:" + jsonObj.get("method"));
String method = jsonObj.get("method").toString(); // 接口方法名
String param = jsonObj.get("param").toString(); // 接口方法对应传参
if (method.equals(METHOD_NAME.ADD_NB_FAMILY_VISIT)) {
// 新生儿家庭访视新增
JSONObject obj = (JSONObject) JSONObject.parse(param);
objStr = childrenHealthCareService.addNBFamilyVisit(obj);
log.info("新增新生儿家庭访视返回参数:" + objStr);
} else if (method.equals(METHOD_NAME.GET_NB_FAMILY_VISIT)) {
// 新生儿家庭访视记录查询
// JSONObject obj = (JSONObject) JSONObject.parse(param);
// objStr = childrenHealthCareService.getNBFamilyVisit(obj);
// log.info("新生儿家庭访视记录查询返回参数:" + objStr);
} else if (method.equals(METHOD_NAME.GET_NB_FAMILY_VISITS_BY_DATE)) {
// 新生儿家庭访视记录(时间段查询)
JSONObject obj = (JSONObject) JSONObject.parse(param);
objStr = childrenHealthCareService.getNBFamilyVisitsByDate(obj);
log.info("新生儿家庭访视记录(时间段查询)返回参数:" + objStr);
} else if (method.equals(METHOD_NAME.ADD_HOS)) {
// 新增机构信息
JSONObject obj = (JSONObject) JSONObject.parse(param);
objStr = mechanismInfoService.addHos(obj);
log.info("新增机构信息返回参数:" + objStr);
}
log.info("method:" + method);
} catch (
Exception e) {
log.error("获取前端json数据错误:" + e);
}
return objStr;
}
}
1.3.其他搭建完全与springmvc搭建相同。服务端搭建完成。
2.客户端搭建
2.1.创建文件file1.json
{
"plat": "b47ffabc998547e4bbe46b92eb8aab06",
"method": "getBaseInfoMessageCardsByDate",
"param": {
"modifyTimeStart" : "2017-05-01",
"modifyTimeEnd" : "2017-05-21",
"showNum" : "10",
"page" : "1"
}
}
2.2.创建ReadJsonFile类读取json文件
package com.test.JsonFile;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import com.alibaba.fastjson.JSONObject;
public class ReadJsonFile {
public static String ReadFile(String Path) {
String rootPath = ReadJsonFile.class.getResource("").getFile().toString();
BufferedReader reader = null;
String laststr = "";
try {
FileInputStream fileInputStream = new FileInputStream(rootPath + Path);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
reader = new BufferedReader(inputStreamReader);
String tempString = null;
while ((tempString = reader.readLine()) != null) {
laststr += tempString;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
JSONObject jsonObj = new JSONObject();
jsonObj = (JSONObject) JSONObject.parse(laststr);
return jsonObj.toJSONString();
}
public static void main(String[] args) {
// 取得根目录路径
String rootPath = ReadJsonFile.class.getResource("").getFile().toString();
// 当前目录路径
// String currentPath1=getClass().getResource(".").getFile().toString();
// String currentPath2=getClass().getResource("").getFile().toString();
// //当前目录的上级目录路径
// String parentPath=getClass().getResource("../").getFile().toString();
System.out.println(rootPath);
}
}
2.3.创建读取服务端url类
package com.test;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import com.alibaba.fastjson.JSONObject;
import com.test.JsonFile.ReadJsonFile;
/**
* 接口公共方法
*
* @author Administrator
*/
public abstract class InterfaceMethod {
private static final Logger log = Logger.getLogger(InterfaceMethod.class);
@SuppressWarnings("unchecked")
public static void addNBFamilyVisit() {
//String dataStr = ReadJsonFile.ReadFile("file1.json");
//String dataStr = ReadJsonFile.ReadFile("orgInfo.json");
//String dataStr = ReadJsonFile.ReadFile("health.json");
String dataStr = ReadJsonFile.ReadFile("women8.json");
try {
Map<String, Object> jsonMap = new HashMap<String, Object>();
JSONObject object = new JSONObject();
String sr = HttpRequest.sendPost("http://127.0.0.1:8080/EHR/jsp/invoke.do", "json="+dataStr);
System.out.println("调用返回参数:" + sr);
} catch (Exception e) {
log.error("测试接口错误:" + e);
}
}
public static void main(String[] args) {
addNBFamilyVisit();// 新增新生儿家庭访视记录测试
}
}
3.启动服务端在启动客户端可以用于测试。