springmvc 创建公共接口对应服务端和客户端
2017-06-21 10:33
281 查看
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.启动服务端在启动客户端可以用于测试。
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.启动服务端在启动客户端可以用于测试。
相关文章推荐
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- Java创建WebService服务端及客户端
- 如何用WSDL4J构建Spring+AXIS自动创建的Web service对应客户端
- cxf的使用及安全校验-02创建简单的客户端接口
- MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹
- cxf 动态创建客户端,局域网能正常调用服务端,外网不能访问
- aix下的ftp服务端.客户端创建文件为700.如何改为777
- SoapUI5.0创建WebService接口模拟服务端
- Webservice_17_客户端创建Handler,服务端接受Handler
- CXF创建webservice客户端和服务端
- RemObjects(一)客户端远程调用服务端接口过程
- wince win32 c++ socket 服务端 客户端 创建与通信
- 使用JAX-WS创建webservice服务,含服务端及客户端
- Android客户端WebService访问接口(Ksoap2Android调用.net服务端)
- cxf的使用及安全校验-01创建简单的服务端接口
- TCP/UDP服务端和客户端创建步骤
- 当服务端的接口没有改变,而实现改变了,需要重新发布一下,客户端不需要做任何更改
- 客户端 服务端公共部分
- RemObjects(一)客户端远程调用服务端接口过程
- 使用HPROSE 创建服务端、客户端简明教程