package com.nis.util; import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.ws.rs.client.Invocation.Builder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import org.glassfish.jersey.media.multipart.FormDataMultiPart; import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; import com.jcraft.jsch.Logger; import com.nis.domain.maat.ToMaatResult; import com.nis.domain.maat.ToMaatResult.ResponseData; import com.nis.exceptions.MaatConvertException; import com.nis.util.httpclient.ClientUtil; public class ConfigServiceUtil { /*public static class MapTypeAdapter extends TypeAdapter { @Override public Object read(JsonReader in) throws IOException { JsonToken token = in.peek(); switch (token) { case BEGIN_ARRAY: List list = new ArrayList(); in.beginArray(); while (in.hasNext()) { list.add(read(in)); } in.endArray(); return list; case BEGIN_OBJECT: Map map = new LinkedTreeMap(); in.beginObject(); while (in.hasNext()) { map.put(in.nextName(), read(in)); } in.endObject(); return map; case STRING: return in.nextString(); case NUMBER: String temp = in.nextString(); BigDecimal dbNum = new BigDecimal(temp); BigDecimal maxLong = new BigDecimal(Long.MAX_VALUE); BigDecimal maxInteger = new BigDecimal(Integer.MAX_VALUE); // 数字超过long的最大值,返回BigDecimal类型 if (dbNum.compareTo(maxLong)==1) { return dbNum; }else if(dbNum.compareTo(maxInteger)==1){ long lngNum = Long.parseLong(temp); return lngNum; }else{ int lngNum = Integer.parseInt(temp); return lngNum; } case BOOLEAN: return in.nextBoolean(); case NULL: in.nextNull(); return null; default: throw new IllegalStateException(); } } @Override public void write(JsonWriter out, Object value) throws IOException { // 序列化无需实现 } }*/ /** * 从后台服务获取compileid,groupid,regionid * @param type 1是compileid,2是groupid,3是regionid * @return */ public static List getId(int type,int num) throws MaatConvertException { String result = null; String url = ""; List list = new ArrayList(); if (type == 1) { url = Constants.SERVICE_URL+Constants.CONFIG_ID_SOURCES+"?sourceName=CONFIG_COMPILE&num="+num; } else if (type == 2) { url = Constants.SERVICE_URL+Constants.CONFIG_ID_SOURCES+"?sourceName=CONFIG_GROUP&num="+num; } else if (type == 3) { url = Constants.SERVICE_URL+Constants.CONFIG_ID_SOURCES+"?sourceName=CONFIG_REGION&num="+num; } //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); //获取响应结果 Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); Response response= header.get(); if( response.getStatus() == 200){ result= response.readEntity(String.class); // result = "{\"status\":200,\"businessCode\":2000,\"reason\":\"数据获取操作成功\"," // + "\"msg\":\"配置ID获取成功\",\"fromuri\":\"/galaxy/service/cfg/v1/configPzIdSources\"," // + "\"traceCode\":\"2018052409232108368751\",\"data\":{\"sourceName\":\"CONFIG_COMPILE\",\"num\":1,\"pzIdList\":[22]}}"; JSONObject resObject = JSONObject.fromObject(result); ToMaatResult bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); if(!StringUtil.isEmpty(bean)){ if(!StringUtil.isEmpty(bean.getData())){ list = bean.getData().getPzIdList(); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return list; } /** * MAAT配置提交 * @param params * @return * @throws Exception */ public static ToMaatResult postMaatCfg(String params) throws MaatConvertException{ String result = null; ToMaatResult bean = null; String url = Constants.SERVICE_URL+Constants.MAAT_CFG; //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); //获取响应结果 Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); Response response= header.post(Entity.entity(params, MediaType.APPLICATION_JSON)); if( response.getStatus() == 200){ result= response.readEntity(String.class); JsonConfig config=new JsonConfig(); config.setExcludes(new String[]{"configCompileList"}); JSONObject resObject = JSONObject.fromObject(result,config); bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return bean; } /** * 回调配置提交 * @param params * @return * @throws Exception */ public static ToMaatResult postCallbackCfg(String params) throws MaatConvertException{ String result = null; ToMaatResult bean = null; String url = Constants.SERVICE_URL+Constants.CALLBACK_CFG; //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); //获取响应结果 Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); Response response= header.post(Entity.entity(params, MediaType.APPLICATION_JSON)); if( response.getStatus() == 200){ result= response.readEntity(String.class); JSONObject resObject = JSONObject.fromObject(result); bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return bean; } /** * 文件配置提交 * @param params * @return * @throws Exception */ public static ToMaatResult postFileCfg(String params,File file,JSONObject fileDesc) throws MaatConvertException{ String result = null; ToMaatResult bean = null; String url = Constants.SERVICE_URL+Constants.FILE_UPLOAD_CFG; //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); FormDataMultiPart formDataMultiPart=new FormDataMultiPart(); FileDataBodyPart bodyPart=new FileDataBodyPart("file",file); formDataMultiPart.bodyPart(bodyPart); Builder header = wt.request(MediaType.APPLICATION_JSON).header("File-Desc",fileDesc); Response response= header.post(Entity.entity(formDataMultiPart, formDataMultiPart.getMediaType())); if( response.getStatus() == 200){ result= response.readEntity(String.class); JSONObject resObject = JSONObject.fromObject(result); bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return bean; } /** * 配置删除 * @param params * @param type,1表示maat配置取消,2表示回调配置取消 * @return */ public static ToMaatResult delete(String params,Integer type) throws MaatConvertException{ String result = null; ToMaatResult bean = null; String url = Constants.SERVICE_URL; if(type==1){ url = url+Constants.MAAT_CFG; }else if(type==2){ url = url+Constants.CALLBACK_CFG; } //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); //获取响应结果 Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); Response response= header.delete(); if( response.getStatus() == 200){ result= response.readEntity(String.class); JSONObject resObject = JSONObject.fromObject(result); bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return bean; } /** * 配置状态修改 * @param params * @param type,1表示maat配置取消,2表示回调配置取消 * @return */ public static ToMaatResult put(String params,Integer type) throws MaatConvertException{ String result = null; ToMaatResult bean = null; String url = Constants.SERVICE_URL; if(type==1){ url = url+Constants.MAAT_CFG; }else if(type==2){ url = url+Constants.CALLBACK_CFG; } //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); //获取响应结果 Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); Response response= header.post(Entity.entity(params, MediaType.APPLICATION_JSON)); if( response.getStatus() == 200){ result= response.readEntity(String.class); JSONObject resObject = JSONObject.fromObject(result); bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return bean; } /** * 信息获取 * @param params * @return * @throws Exception */ public static ToMaatResult getFileDigest(String params,File file,Map fileDesc) throws MaatConvertException{ String result = null; ToMaatResult bean = null; String url = Constants.SERVICE_URL+Constants.FILE_DIGEST_CFG; //创建连接 WebTarget wt = ClientUtil.getWebTarger(url); FormDataMultiPart formDataMultiPart=new FormDataMultiPart(); FileDataBodyPart bodyPart=new FileDataBodyPart("file",file); formDataMultiPart.bodyPart(bodyPart); Builder header = wt.request(MediaType.APPLICATION_JSON).header("File-Desc",ClientUtil.formatFileDesc(fileDesc) ); Response response= header.post(Entity.entity(formDataMultiPart, formDataMultiPart.getMediaType())); if( response.getStatus() == 200){ result= response.readEntity(String.class); JSONObject resObject = JSONObject.fromObject(result); bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class); }else{ throw new MaatConvertException(":"+response.readEntity(String.class)); } return bean; } public static void main(String[] args) { try { getId(1,1); } catch (Exception e) { e.printStackTrace(); } } }