diff --git a/lib/hk2-api-2.4.0-b34.jar b/lib/hk2-api-2.4.0-b34.jar new file mode 100644 index 000000000..dcf2c6c96 Binary files /dev/null and b/lib/hk2-api-2.4.0-b34.jar differ diff --git a/lib/hk2-locator-2.4.0-b34.jar b/lib/hk2-locator-2.4.0-b34.jar new file mode 100644 index 000000000..190f29205 Binary files /dev/null and b/lib/hk2-locator-2.4.0-b34.jar differ diff --git a/lib/hk2-utils-2.4.0-b34.jar b/lib/hk2-utils-2.4.0-b34.jar new file mode 100644 index 000000000..91930d9b6 Binary files /dev/null and b/lib/hk2-utils-2.4.0-b34.jar differ diff --git a/lib/jackson-jaxrs-base-2.5.4.jar b/lib/jackson-jaxrs-base-2.5.4.jar new file mode 100644 index 000000000..7ff836723 Binary files /dev/null and b/lib/jackson-jaxrs-base-2.5.4.jar differ diff --git a/lib/jackson-jaxrs-json-provider-2.5.4.jar b/lib/jackson-jaxrs-json-provider-2.5.4.jar new file mode 100644 index 000000000..0ff44148a Binary files /dev/null and b/lib/jackson-jaxrs-json-provider-2.5.4.jar differ diff --git a/lib/javax.annotation-api-1.2.jar b/lib/javax.annotation-api-1.2.jar new file mode 100644 index 000000000..9ab39ffa4 Binary files /dev/null and b/lib/javax.annotation-api-1.2.jar differ diff --git a/lib/javax.inject-2.4.0-b34.jar b/lib/javax.inject-2.4.0-b34.jar new file mode 100644 index 000000000..9a06dd381 Binary files /dev/null and b/lib/javax.inject-2.4.0-b34.jar differ diff --git a/lib/javax.ws.rs-api-2.0.1.jar b/lib/javax.ws.rs-api-2.0.1.jar new file mode 100644 index 000000000..7eb68b4a0 Binary files /dev/null and b/lib/javax.ws.rs-api-2.0.1.jar differ diff --git a/lib/jersey-client-2.23.1.jar b/lib/jersey-client-2.23.1.jar new file mode 100644 index 000000000..82e43cf75 Binary files /dev/null and b/lib/jersey-client-2.23.1.jar differ diff --git a/lib/jersey-common-2.23.1.jar b/lib/jersey-common-2.23.1.jar new file mode 100644 index 000000000..c4699bfc2 Binary files /dev/null and b/lib/jersey-common-2.23.1.jar differ diff --git a/lib/jersey-entity-filtering-2.23.1.jar b/lib/jersey-entity-filtering-2.23.1.jar new file mode 100644 index 000000000..f2427e707 Binary files /dev/null and b/lib/jersey-entity-filtering-2.23.1.jar differ diff --git a/lib/jersey-guava-2.23.1.jar b/lib/jersey-guava-2.23.1.jar new file mode 100644 index 000000000..59beedc04 Binary files /dev/null and b/lib/jersey-guava-2.23.1.jar differ diff --git a/lib/jersey-media-json-jackson-2.23.1.jar b/lib/jersey-media-json-jackson-2.23.1.jar new file mode 100644 index 000000000..cfbdf1d3f Binary files /dev/null and b/lib/jersey-media-json-jackson-2.23.1.jar differ diff --git a/lib/jersey-media-multipart-2.23.1.jar b/lib/jersey-media-multipart-2.23.1.jar new file mode 100644 index 000000000..fdd738d17 Binary files /dev/null and b/lib/jersey-media-multipart-2.23.1.jar differ diff --git a/lib/jna-4.1.0.jar b/lib/jna-4.1.0.jar new file mode 100644 index 000000000..b1a3922fe Binary files /dev/null and b/lib/jna-4.1.0.jar differ diff --git a/lib/jna-platform-4.1.0.jar b/lib/jna-platform-4.1.0.jar new file mode 100644 index 000000000..8d5fe3dee Binary files /dev/null and b/lib/jna-platform-4.1.0.jar differ diff --git a/lib/mchange-commons-java-0.2.11.jar b/lib/mchange-commons-java-0.2.11.jar new file mode 100644 index 000000000..88f1d47d3 Binary files /dev/null and b/lib/mchange-commons-java-0.2.11.jar differ diff --git a/lib/mimepull-1.9.6.jar b/lib/mimepull-1.9.6.jar new file mode 100644 index 000000000..0db24c405 Binary files /dev/null and b/lib/mimepull-1.9.6.jar differ diff --git a/pom.xml b/pom.xml index ab1909b37..3d106a52e 100644 --- a/pom.xml +++ b/pom.xml @@ -589,6 +589,35 @@ hive-jdbc 2.1.0 + + com.sun.jersey + jersey-core + + + com.sun.jersey + jersey-client + 1.9 + + + com.sun.jersey + jersey-core + 1.9 + + + com.sun.jersey + jersey-json + 1.9 + + + com.sun.jersey + jersey-guice + 1.9 + + + com.sun.jersey + jersey-server + 1.9 + org.apache.logging.log4j log4j-1.2-api @@ -648,7 +677,11 @@ httpclient 4.4 - + cglib cglib diff --git a/src/main/java/com/nis/util/ConfigServiceUtil.java b/src/main/java/com/nis/util/ConfigServiceUtil.java new file mode 100644 index 000000000..3213caae8 --- /dev/null +++ b/src/main/java/com/nis/util/ConfigServiceUtil.java @@ -0,0 +1,179 @@ +package com.nis.util; + +import java.io.File; +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 org.glassfish.jersey.media.multipart.FormDataMultiPart; +import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; + +import com.nis.util.httpclient.ClientUtil; + +public class ConfigServiceUtil { + /** + * 从后台服务获取compileid,groupid,regionid + * @param type 1是compileid,2是groupid,3是regionid + * @return + */ + public static String getId(int type,int num) throws Exception { + String result = null; + String url = ""; + 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); + } + if(result == null){ + return "0"; + }else{ + return result; + } + + } + /** + * MAAT配置提交 + * @param params + * @return + * @throws Exception + */ + public static String postMaatCfg(String params) throws Exception{ + String result = 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.get(); + if( response.getStatus() == 200){ + result= response.readEntity(String.class); + }else{ + + } + return result; + + } + /** + * 回调配置提交 + * @param params + * @return + * @throws Exception + */ + public static String postCallbackCfg(String params) throws Exception{ + String result = 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.get(); + if( response.getStatus() == 200){ + result= response.readEntity(String.class); + }else{ + + } + return result; + + } + /** + * 文件配置提交 + * @param params + * @return + * @throws Exception + */ + public static String postFileCfg(String params,File file,Map fileDesc) throws Exception{ + String result = 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",ClientUtil.formatFileDesc(fileDesc) ); + Response response= header.post(Entity.entity(formDataMultiPart, formDataMultiPart.getMediaType())); + if( response.getStatus() == 200){ + result= response.readEntity(String.class); + }else{ + + } + return result; + + } + /** + * 配置删除 + * @param params + * @return + */ + public static String delete(String params){ + String result = ""; + return result; + + } + /** + * 配置文件上传 + * @param params + * @return + */ + public static String put(String params){ + String result = ""; + return result; + } + /** + * 信息获取 + * @param params + * @return + * @throws Exception + */ + public static String getFileDigest(String params,File file,Map fileDesc) throws Exception{ + String result = 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); + }else{ + + } + return result; + } + public static void main(String[] args) { + try { + //创建连接 + WebTarget wt = ClientUtil.getWebTarger("http://10.0.6.30:8080/maatRest/service/cfg/v1/getCompileId?sourceName=CONFIG_COMPILE&num=1"); + //获取响应结果 + Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON); + Response response= header.get(); + if( response.getStatus() == 200){ + String result= response.readEntity(String.class); + }else{ + + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 072010910..22a207b0b 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -1,6 +1,8 @@ package com.nis.util; import java.util.Date; +import java.util.HashMap; +import java.util.Map; import com.google.gson.GsonBuilder; @@ -274,5 +276,11 @@ public final class Constants { public static final String CALLBACK_CFG = Configurations.getStringProperty("callbackCfg","commonSources"); public static final String FILE_UPLOAD_CFG = Configurations.getStringProperty("fileUploadCfg","fileUploadSources"); public static final String FILE_DIGEST_CFG=Configurations.getStringProperty("fileDigestCfg","fileDigestSources"); + public static final String CONFIG_ID_SOURCES=Configurations.getStringProperty("configIdSources","configPzIdSources"); + /**请求头参数*/ + public static final Map REQUEST_HEADER = new HashMap(); + public static final Integer CLIENT_CONNECT_TIMEOUT = Configurations.getIntProperty("client_connect_timeout",1000); + public static final Integer CLIENT_READ_TIMEOUT = Configurations.getIntProperty("client_read_timeout",1000); + public static final Integer CLIENT_SOCKET_TIMEOUT = Configurations.getIntProperty("client_socket_timeout",1000); } diff --git a/src/main/java/com/nis/util/httpclient/ClientRequestHeaderFilter.java b/src/main/java/com/nis/util/httpclient/ClientRequestHeaderFilter.java new file mode 100644 index 000000000..95c55f2cf --- /dev/null +++ b/src/main/java/com/nis/util/httpclient/ClientRequestHeaderFilter.java @@ -0,0 +1,27 @@ +package com.nis.util.httpclient; + +import java.io.IOException; +import java.util.Map; + +import javax.ws.rs.client.ClientRequestContext; +import javax.ws.rs.client.ClientRequestFilter; +import javax.ws.rs.core.MultivaluedMap; + +import com.nis.util.Constants; +/** + * 请求过滤器,每次请求时自动配置requestHeader信息 + */ +public class ClientRequestHeaderFilter implements ClientRequestFilter{ + + @Override + public void filter(ClientRequestContext context) throws IOException { + MultivaluedMap header = context.getHeaders(); + Map h = Constants.REQUEST_HEADER;//请求头参数 + if(h != null && h.size() > 0){ + for(Map.Entry temp : h.entrySet()){ + header.add(temp.getKey(), temp.getValue()); + } + } + } + +} diff --git a/src/main/java/com/nis/util/httpclient/ClientUtil.java b/src/main/java/com/nis/util/httpclient/ClientUtil.java new file mode 100644 index 000000000..3e32cffb3 --- /dev/null +++ b/src/main/java/com/nis/util/httpclient/ClientUtil.java @@ -0,0 +1,113 @@ +package com.nis.util.httpclient; + + +import java.io.IOException; +import java.security.NoSuchAlgorithmException; +import java.util.HashMap; +import java.util.Map; + +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.client.Invocation.Builder; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import net.sf.json.JSONObject; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.client.ClientProtocolException; +import org.apache.log4j.Logger; +import org.glassfish.jersey.client.ClientProperties; +import org.glassfish.jersey.jackson.JacksonFeature; +import org.glassfish.jersey.media.multipart.MultiPartFeature; + +import com.nis.util.Constants; + + +public class ClientUtil { + + private static Client client;//客户端 + private static Logger logger = Logger.getLogger(ClientUtil.class); + /** + * 初始化https client + * @throws Exception + * @throws NoSuchAlgorithmException + * @throws KeyManagementException + */ + public static void initClient(){ + try{ + client = ClientBuilder.newBuilder().register(ClientRequestHeaderFilter.class)//请求过滤器,自动添加header信息 + .register(JacksonFeature.class)//json支持 + .register(MultiPartFeature.class)//文件上传支持 + .property(ClientProperties.CONNECT_TIMEOUT, Constants.CLIENT_CONNECT_TIMEOUT)//连接超时时间 + .property(ClientProperties.READ_TIMEOUT, Constants.CLIENT_READ_TIMEOUT)//读取超时时间 + .build(); + logger.info("客户端初始化成功"); + }catch (Exception e) { + logger.error("初始化客户端失败,请检查证书是否正确!",e); + System.exit(1);//程序退出 + } + } + + /** + *path 以https://或http:// 开始不做处理,否则在path前加上 Constants.BASE_URL + Constants.VERSION + * @param path + * @return + */ + public static WebTarget getWebTarger(String path){ + initClient(); + if(StringUtils.isNotBlank(path)){ + path = formatHttpStr(path);//格式化url字符串 + return client.target(path); + } + return null; + } + + /** + * 格式化url字符串 + * @param path + * @return + */ + public static String formatHttpStr(String path){ + if( ! path.startsWith("https://") && ! path.startsWith("http://")){ + path = Constants.SERVICE_URL + "/" + path; + } + path = path.replaceAll("/{2,}", "/"); + int i = path.indexOf(":/") + 2; + String prefix = path.substring(0, i); + path =prefix +"/"+ path.substring(i); + return path; + } + + public static Client getClient() { + return client; + } + + public static void setClient(Client client) { + ClientUtil.client = client; + } + /** + *文件上传header增加Content-fileDesc属性 + *格式:Content-Filedesc:json格式的字段描述 + * @param path + * @return + */ + public static JSONObject formatFileDesc(Map map){ + Map newMap = new HashMap(); + + return JSONObject.fromObject(newMap); + } + public static void main(String[] args) throws ClientProtocolException, IOException { + String url = Constants.SERVICE_URL+Constants.CONFIG_ID_SOURCES; + //创建连接 + 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){ + String result= response.readEntity(String.class); + System.out.println(result); + } + } +} diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 9a5e049f3..a2a1a1998 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -219,11 +219,14 @@ clusterBStartTime=1503504000725 isCommit=true ############################################################################################################################################ ############################################################################################################################################ -httpUrl=http://127.0.0.1:8080/gk/service/cfg/v1/ +httpUrl=http://10.0.6.30:8080/maatRest/service/cfg/v1/ maatCfg=configSources fileUploadCfg=fileUploadSources callbackCfg=commonSources fileDigestCfg=fileDigestSources +configIdSources=getCompileId +client_connect_timeout=1000 +client_read_timeout=1000 #use elasticsearch or not# isUseES=false diff --git a/src/main/resources/spring-mvc.xml b/src/main/resources/spring-mvc.xml index fabfedf43..44371dfc5 100644 --- a/src/main/resources/spring-mvc.xml +++ b/src/main/resources/spring-mvc.xml @@ -34,6 +34,10 @@ cache-period="31536000" /> + + @@ -258,7 +262,7 @@ - + diff --git a/src/main/webapp/WEB-INF/views/cfg/ipCfgDemoForm.jsp b/src/main/webapp/WEB-INF/views/cfg/ipCfgDemoForm.jsp new file mode 100644 index 000000000..b640190b9 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/ipCfgDemoForm.jsp @@ -0,0 +1,486 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + +
+

+ +

+
+
+
+
+
+ + + + + + + +
+
+
+ +
+
+

+ +

+
+
+
+ +
+ +
+
+
+
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+ +
+ + +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+ + <%-- --%> +
+
+
+
+ +
+ +
+ +
+ + <%-- --%> +
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+ +
+ + <%-- + + --%> +
+
+
+
+ +
+
+ +
+ + + + + + + + + + + + +
+ <%@include file="/WEB-INF/include/form/areaDemoInfo.jsp"%> + <%@include file="/WEB-INF/include/form/basicInfo.jsp"%> +
+ +
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file