diff --git a/WebContent/WEB-INF/lib/commons-beanutils-1.7.0.jar b/WebContent/WEB-INF/lib/commons-beanutils-1.7.0.jar
new file mode 100644
index 00000000..b1b89c9c
Binary files /dev/null and b/WebContent/WEB-INF/lib/commons-beanutils-1.7.0.jar differ
diff --git a/WebContent/WEB-INF/lib/commons-collections-3.2.jar b/WebContent/WEB-INF/lib/commons-collections-3.2.jar
new file mode 100644
index 00000000..75580be2
Binary files /dev/null and b/WebContent/WEB-INF/lib/commons-collections-3.2.jar differ
diff --git a/WebContent/WEB-INF/lib/ezmorph-1.0.4.jar b/WebContent/WEB-INF/lib/ezmorph-1.0.4.jar
new file mode 100644
index 00000000..7625af67
Binary files /dev/null and b/WebContent/WEB-INF/lib/ezmorph-1.0.4.jar differ
diff --git a/WebContent/WEB-INF/lib/ganymed-ssh2-build209.jar b/WebContent/WEB-INF/lib/ganymed-ssh2-build209.jar
new file mode 100644
index 00000000..95f233ce
Binary files /dev/null and b/WebContent/WEB-INF/lib/ganymed-ssh2-build209.jar differ
diff --git a/WebContent/WEB-INF/lib/json-lib-2.2.2-jdk15.jar b/WebContent/WEB-INF/lib/json-lib-2.2.2-jdk15.jar
new file mode 100644
index 00000000..27e7c7cc
Binary files /dev/null and b/WebContent/WEB-INF/lib/json-lib-2.2.2-jdk15.jar differ
diff --git a/src/META-INF/persistence.xml b/src/META-INF/persistence.xml
new file mode 100644
index 00000000..2ad4aeca
--- /dev/null
+++ b/src/META-INF/persistence.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/src/com/base/BaseController.java b/src/com/base/BaseController.java
new file mode 100644
index 00000000..a9fd417a
--- /dev/null
+++ b/src/com/base/BaseController.java
@@ -0,0 +1,63 @@
+/**
+ * 文件名 : BaseController.java
+ * 版权 : XX科技有限公司。
+ * 描述 : <描述>
+ * 修改时间:2016年9月7日
+ * 修改内容:<修改内容>
+ */
+package com.base;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+
+import com.platform.utils.Configs;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author chen
+ * @version [版本号,2016年9月7日]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class BaseController {
+
+ /** log4j */
+ public static Logger log = Logger.getRootLogger();
+
+ /**
+ * <一句话功能简述> 基于@ExceptionHandler异常处理----全局异常处理
+ * <功能详细描述>
+ * @param request
+ * @param ex 异常
+ * @return
+ * @see [类、类#方法、类#成员]
+ */
+ @ExceptionHandler
+ public Object exp(HttpServletRequest request, HttpServletResponse response,Exception ex) {
+ System.out.println("URI"+request.getRequestURI());
+ request.setAttribute("ex", ex);
+ System.err.println("BaseController --exp ");
+ // 根据不同错误转向不同页面
+ if(ex instanceof CustomException) {
+ CustomException cuse = (CustomException) ex;
+ Map errmsg = new HashMap<>();
+ errmsg.put("code", cuse.getCode());
+ errmsg.put("msg", cuse.getMsg());
+ log.error(cuse.getCode());
+ response.setStatus(500);
+ return response;
+ } else {
+ //其他错误则 调到指定页面
+ log.error(Configs.GLOBAL_EXP_NOT_CUSTOM, ex);
+ response.setStatus(500);
+ return response;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/com/base/Constant.java b/src/com/base/Constant.java
new file mode 100644
index 00000000..4d336465
--- /dev/null
+++ b/src/com/base/Constant.java
@@ -0,0 +1,23 @@
+package com.base;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author chen
+ * @version [版本号,2016年9月8日]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class Constant {
+
+ /** 国际话配置文件文件-i18n.properties */
+ public static String I18N_PROPERTIES_FIEL_PATH = "/com/base/i18n.properties";
+
+ /** WritefileThread-线程睡眠时间--3000 */
+ public final static long THREAD_SLEEP_WRITEFILETHREAD = 3000;
+
+ /** CustomException记录报异常的对象的对象个数--10 */
+ public final static int CustomException_log_object_size = 10;
+
+
+}
diff --git a/src/com/base/Custom4exception.java b/src/com/base/Custom4exception.java
new file mode 100644
index 00000000..2aeba6c6
--- /dev/null
+++ b/src/com/base/Custom4exception.java
@@ -0,0 +1,20 @@
+package com.base;
+
+/**
+ * <一句话功能简述> 异常常量编码
+ * <功能详细描述>
+ * @author chen
+ * @version [版本号,2016年9月8日]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class Custom4exception {
+ //3003001001 : 第一位:标识异常, 第二到第四位:标识模块,第五道第七位:标识类别,第八道第十位标识具体异常
+ /**eg
+ * 3:异常
+ * 003:虚拟机模块
+ * 001:软件依赖虚拟机资源类别
+ * 001:启动异常
+ */
+
+}
diff --git a/src/com/base/CustomException.java b/src/com/base/CustomException.java
new file mode 100644
index 00000000..42b44cfb
--- /dev/null
+++ b/src/com/base/CustomException.java
@@ -0,0 +1,124 @@
+package com.base;
+
+import org.apache.log4j.Logger;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ * @author chen
+ * @version [版本号,2016年9月8日]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@SuppressWarnings("serial")
+public class CustomException extends Exception {
+
+ /** log4j */
+ public static Logger log = Logger.getRootLogger();
+
+ /** 自定义异常信息-错误信息 */
+ private String msg;
+
+ /** 自定义异常信息-错误代码 */
+ private String code;
+
+ /** 操作对象 */
+ private Object[] objArray;
+
+ /** 异常 */
+ private Throwable cause;
+
+ public CustomException() {
+ super();
+ }
+
+ /**
+ * @功能 将异常记录进文件
+ * @param code 异常编码
+ * @param msg 自定义异常信息
+ * @param e
+ * @param obj
+ */
+ public CustomException(String code,Exception e,Object... obj) {
+ super(code);
+ StringBuffer sbuf= new StringBuffer();
+ sbuf.append(msg);
+ this.code = code;
+ sbuf.append(code);
+ sbuf.append("\r\n");
+ msg = Resource.getProperties().get(code);
+ // 记录自定义的 异常
+ if (null != msg) {
+ sbuf.append(msg);
+ sbuf.append("\r\n");
+ }
+ // 记录原始的异常
+ if (null != e) {
+ StackTraceElement[] array = e.getStackTrace();
+ cause = e.getCause();
+ for (StackTraceElement stackTraceElement : array) {
+ sbuf.append(stackTraceElement.toString());
+ sbuf.append("\r\n");
+ }
+ }
+ //记录 出现异常时 当前的对象
+ if (null != obj) {
+ Object[] array = obj;
+ sbuf.append("Object[] size : ");
+ sbuf.append(array.length);
+ int forSize = 0;
+ if (Constant.CustomException_log_object_size < array.length) {
+ forSize = Constant.CustomException_log_object_size;
+ }
+ else {
+ forSize = array.length;
+ }
+ for (int i = 0; i < forSize; i++) {
+ sbuf.append(array[i]);
+ sbuf.append("\r\n");
+ }
+ sbuf.append("......");
+ sbuf.append("\r\n");
+ }
+ else {
+ sbuf.append("null");
+ sbuf.append("\r\n");
+ }
+
+ sbuf.append("\r\n");
+ // 是否 写入 文件
+ log.error(sbuf.toString());
+ }
+
+ /**
+ * @功能 获得msg
+ * @return msg
+ */
+ public String getMsg() {
+ return msg;
+ }
+
+
+ /**
+ * @return the code
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * @功能 获得objArray
+ * @return objArray
+ */
+ public Object[] getObjArray() {
+ return objArray;
+ }
+
+ /**
+ * @功能 获得cause
+ * @return cause
+ */
+ public Throwable getCause() {
+ return cause;
+ }
+}
diff --git a/src/com/base/Resource.java b/src/com/base/Resource.java
new file mode 100644
index 00000000..0b900bfe
--- /dev/null
+++ b/src/com/base/Resource.java
@@ -0,0 +1,79 @@
+package com.base;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+
+import com.base.Constant;
+
+public class Resource {
+
+ private static Map properties = new HashMap<>();
+
+ static{
+ // 读取 properties文件
+// readPropertiesFile(Constant.SYSTEM_PROPERTIES_FIEL_PATH);
+ readPropertiesFile4Chinese(Constant.I18N_PROPERTIES_FIEL_PATH);
+
+ }
+
+ /**
+ * @功能 读取配置(解决中文乱码)
+ * @param filename "/com/utils/exception/i18n.properties" 的格式
+ */
+ public static void readPropertiesFile4Chinese(String filename) {
+ Properties pro = new Properties();
+ try {
+ // 读取属性文件 XXXX.properties(Reader。writer解决中文乱码)
+// InputStreamReader in= new InputStreamReader(Resource.class.getClassLoader().getResourceAsStream(filename), "UTF-8");
+ InputStreamReader in= new InputStreamReader(Resource.class.getResourceAsStream(filename), "UTF-8");
+ BufferedReader bf = new BufferedReader(in);
+ // InputStreamReader in = new BufferedInputStream(new FileInputStream(filename));
+ pro.load(bf); // /加载属性列表
+ Iterator it = pro.stringPropertyNames().iterator();
+ while (it.hasNext()) {
+ String key = it.next();
+ properties.put(key, pro.getProperty(key));
+ }
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @功能 获得properties
+ * @return properties
+ */
+ public static Map getProperties() {
+ return properties;
+ }
+
+ /**
+ * @功能 读取配置
+ * @param filename 文件绝对路径
+ */
+ public static void readPropertiesFile(String filename) {
+ Properties pro = new Properties();
+ try {
+ // 读取属性文件 XXXX.properties( 中文会 乱码)
+ BufferedInputStream bf = new BufferedInputStream(new FileInputStream(filename));
+ pro.load(bf); // /加载属性列表
+ Iterator it = pro.stringPropertyNames().iterator();
+ while (it.hasNext()) {
+ String key = it.next();
+ properties.put(key, pro.getProperty(key));
+ }
+ bf.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/src/com/base/i18n.properties b/src/com/base/i18n.properties
new file mode 100644
index 00000000..e69de29b
diff --git a/src/com/dao/mapper/config-details-mapper.xml b/src/com/dao/mapper/config-details-mapper.xml
index afbe9f85..439d4f98 100644
--- a/src/com/dao/mapper/config-details-mapper.xml
+++ b/src/com/dao/mapper/config-details-mapper.xml
@@ -4,16 +4,143 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
-
-
+
+
-
+
+
+
+ id id, service_port port, service_ip ip, service_name name, service_user user, service_password password, service_database databaseName, service_table tableName, service_suffix suffix, service_status status
+
+
+
+
+
+ INSERT INTO
+ services_info(
+
+
+ service_port,
+
+
+ service_ip,
+
+
+ service_name,
+
+
+ service_user,
+
+
+ service_password,
+
+
+ service_database,
+
+
+ service_table,
+
+
+ service_suffix,
+
+
+ service_status,
+
+
+ )
+ VALUES(
+
+
+ #{port},
+
+
+ #{ip},
+
+
+ #{name},
+
+
+ #{user},
+
+
+ #{password},
+
+
+ #{databaseName},
+
+
+ #{tableName},
+
+
+ #{suffix},
+
+
+ #{status},
+
+
+ )
+
+
+
+ DELETE FROM services_info
+
+ id =#{id}
+
+
+
+
+ UPDATE
+ services_info
+
+
+
+ service_name = #{name},
+
+
+ service_ip = #{ip},
+
+
+ service_port= #{port},
+
+
+ service_user= #{user},
+
+
+ service_password= #{password},
+
+
+ service_database= #{databaseName},
+
+
+ service_table= #{tableName},
+
+
+ service_suffix= #{suffix},
+
+
+ service_status= #{status},
+
+
+ remove= #{remove},
+
+
+
+
+ id = #{id}
+
+
+
\ No newline at end of file
diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java
index 6414b3fc..1e42f3f6 100644
--- a/src/com/platform/controller/DataModelController.java
+++ b/src/com/platform/controller/DataModelController.java
@@ -1,6 +1,7 @@
package com.platform.controller;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -10,18 +11,31 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
+import org.springframework.stereotype.Service;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
+import com.base.BaseController;
+import com.platform.entities.DataInfoEntity;
import com.platform.entities.FolderNode;
import com.platform.entities.GatherOracleInfo;
import com.platform.entities.OracleConnectorParams;
import com.platform.entities.PagerOptions;
+import com.platform.entities.VolumeEntity;
import com.platform.service.DataInfoService;
+import com.platform.service.IGfsService;
+import com.platform.service.IMySqlService;
+import com.platform.service.IOracleExtractService;
+import com.platform.service.OracleExtractHelper;
import com.platform.service.OracleStatusService;
+import com.platform.service.impl.MySqlServiceImpl;
import com.platform.test.Brick;
import com.platform.test.FolderReader;
import com.platform.test.Volume;
@@ -29,9 +43,18 @@ import com.platform.utils.Configs;
import com.platform.utils.UtilsHelper;
@Controller
-public class DataModelController {
+public class DataModelController extends BaseController{
@Resource(name = "dataInfoService")
private DataInfoService dfs;
+
+ @Resource(name = "gfsService")
+ private IGfsService gfsService;
+
+ @Resource(name = "mySqlService")
+ private IMySqlService mySqlService;
+
+ @Resource(name = "OracleExtract")
+ private IOracleExtractService OracleExtract;
public void setDfsImp(DataInfoService dfs) {
this.dfs = dfs;
@@ -44,7 +67,7 @@ public class DataModelController {
Map paramMap = res.getParameterMap();
Set keySet = paramMap.keySet();
Map params = new HashMap();
- StringBuffer sb = new StringBuffer().append("ǰ:{");
+ StringBuffer sb = new StringBuffer().append("��ǰ���������:{");
for (String str : keySet) {
String value = paramMap.get(str)[0];
if (StringUtils.isNotEmpty(value)) {
@@ -75,7 +98,7 @@ public class DataModelController {
String[] oraclesName = paramMap.get("oracleName");
if (oraclesName != null)
for (String rcName : oraclesName) {
- Configs.CONSOLE_LOGGER.info("ִк̨ݿ\t" + rcName);
+ Configs.CONSOLE_LOGGER.info("连接成功\t" + rcName);
new OracleStatusService().connectToOracle(rcName);
}
}
@@ -88,51 +111,118 @@ public class DataModelController {
String operate = paramMap.get("operation")[0];
if (null != oraclesName) {
for (String rcName : oraclesName) {
- Configs.CONSOLE_LOGGER.info("ȡ̨ݿ:\t" + rcName);
+ Configs.CONSOLE_LOGGER.info("连接成功:\t" + rcName);
new OracleStatusService().cancelToOracle(rcName, operate);
}
}
}
- @RequestMapping("/extractOracleData")
+ @RequestMapping("/oracle/{name}/extract")
public void extractOracleData(HttpServletRequest res,
- HttpServletResponse req) {
-
+ HttpServletResponse req, String name) throws Exception {
+ System.out.println("------extract-------");
+ System.out.println(name);
+ Map paramMap = res.getParameterMap();
+ //汇总库 对象信息--带有tableName-
+ String[] nodes = paramMap.get("target");
+ Map map = null;
+ for (String string : nodes) {
+ JSONObject jsonobject = JSONObject.fromObject(string);
+ map = jsonobject;
+ System.out.println(map);
+ }
+
+ // 采集库对象--(多个采集库抽取到1个汇总库的1个tableName下)
+ String[] inneed = paramMap.get("inneed");
+ List