no message
parent
a2d801789e
commit
1e6ffef78d
@ -1,111 +0,0 @@
|
||||
package cokr.xit.fims.framework.core.utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
public class XitCommandExecutor {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 실행
|
||||
XitCommandExecutor.execute("ipconfig");
|
||||
}
|
||||
|
||||
/**
|
||||
* cmd 명령어 실행
|
||||
*
|
||||
* @param cmd
|
||||
*/
|
||||
@SuppressWarnings("finally")
|
||||
public static String execute(String cmd) {
|
||||
|
||||
String charset = System.getProperty("sun.jnu.encoding");
|
||||
|
||||
Process process = null;
|
||||
Runtime runtime = Runtime.getRuntime();
|
||||
StringBuffer successOutput = new StringBuffer(); // 성공 스트링 버퍼
|
||||
StringBuffer errorOutput = new StringBuffer(); // 오류 스트링 버퍼
|
||||
StringBuffer sbResult = new StringBuffer(); // 처리 결과
|
||||
BufferedReader successBufferReader = null; // 성공 버퍼
|
||||
BufferedReader errorBufferReader = null; // 오류 버퍼
|
||||
String msg = null; // 메시지
|
||||
|
||||
|
||||
/**
|
||||
* 커맨드 설정
|
||||
* -운영체제에 따라 커맨드를 설정 한다.
|
||||
* -windows가 아니면 모두 linux로 설정 한다.
|
||||
*/
|
||||
String[] cmdarray;
|
||||
if (System.getProperty("os.name").indexOf("Windows") > -1) { //운영체제(OS)가 Windows이면
|
||||
cmdarray = new String[]{"cmd", "/c", cmd};
|
||||
} else { //운영체제(OS)가 Windows가 아니면
|
||||
cmdarray = new String[]{"/bin/sh", "-c", cmd};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 커맨드 실행
|
||||
*/
|
||||
try {
|
||||
|
||||
// 명령어 실행
|
||||
process = runtime.exec(cmdarray);
|
||||
|
||||
// shell 실행이 정상 동작했을 경우
|
||||
successBufferReader = new BufferedReader(new InputStreamReader(process.getInputStream(), charset));
|
||||
|
||||
while ((msg = successBufferReader.readLine()) != null) {
|
||||
successOutput.append(msg + System.getProperty("line.separator"));
|
||||
}
|
||||
|
||||
// shell 실행시 에러가 발생했을 경우
|
||||
errorBufferReader = new BufferedReader(new InputStreamReader(process.getErrorStream(), charset));
|
||||
while ((msg = errorBufferReader.readLine()) != null) {
|
||||
errorOutput.append(msg + System.getProperty("line.separator"));
|
||||
}
|
||||
|
||||
// 프로세스의 수행이 끝날때까지 대기
|
||||
process.waitFor();
|
||||
|
||||
// shell 실행이 정상 종료되었을 경우
|
||||
if (process.exitValue() == 0) {
|
||||
System.out.println("성공");
|
||||
System.out.println(successOutput.toString());
|
||||
|
||||
sbResult = successOutput;
|
||||
} else {
|
||||
// shell 실행이 비정상 종료되었을 경우
|
||||
System.out.println("비정상 종료");
|
||||
System.out.println(successOutput.toString());
|
||||
|
||||
sbResult = successOutput;
|
||||
}
|
||||
|
||||
// shell 실행시 에러가 발생
|
||||
if (XitCmmnUtil.notEmpty(errorOutput.toString())) {
|
||||
// shell 실행이 비정상 종료되었을 경우
|
||||
System.out.println("오류");
|
||||
System.out.println(errorOutput.toString());
|
||||
|
||||
sbResult = errorOutput;
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
process.destroy();
|
||||
if (successBufferReader != null) successBufferReader.close();
|
||||
if (errorBufferReader != null) errorBufferReader.close();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
return sbResult.toString();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
package cokr.xit.fims.framework.core.utils;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Scanner;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public class XitCommandExecutor2 {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 실행
|
||||
XitCommandExecutor2.execute("ipconfig");
|
||||
}
|
||||
|
||||
/**
|
||||
* cmd 명령어 실행
|
||||
*
|
||||
* @param cmd
|
||||
*/
|
||||
public static void execute(String cmd) {
|
||||
try {
|
||||
|
||||
//Linux의 경우는 /bin/bash
|
||||
//Process process = Runtime.getRuntime().exec("/bin/bash");
|
||||
Process process = Runtime.getRuntime().exec("cmd");
|
||||
//Process의 각 stream을 받는다.
|
||||
//process의 입력 stream
|
||||
OutputStream stdin = process.getOutputStream();
|
||||
//process의 에러 stream
|
||||
InputStream stderr = process.getErrorStream();
|
||||
//process의 출력 stream
|
||||
InputStream stdout = process.getInputStream();
|
||||
|
||||
|
||||
//쓰레드 풀을 이용해서 3개의 stream을 대기시킨다.
|
||||
|
||||
|
||||
//출력 stream을 BufferedReader로 받아서 라인 변경이 있을 경우 console 화면에 출력시킨다.
|
||||
Executors.newCachedThreadPool().execute(() -> {
|
||||
// 문자 깨짐이 발생할 경우 InputStreamReader(stdout)에 인코딩 타입을 넣는다. ex) InputStreamReader(stdout, "euc-kr")
|
||||
// try (BufferedReader reader = new BufferedReader(new InputStreamReader(stdout, "euc-kr"))) {
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(stdout))) {
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
System.out.println(line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//에러 stream을 BufferedReader로 받아서 에러가 발생할 경우 console 화면에 출력시킨다.
|
||||
Executors.newCachedThreadPool().execute(() -> {
|
||||
// 문자 깨짐이 발생할 경우 InputStreamReader(stdout)에 인코딩 타입을 넣는다. ex) InputStreamReader(stdout, "euc-kr")
|
||||
// try (BufferedReader reader = new BufferedReader(new InputStreamReader(stderr, "euc-kr"))) {
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(stderr))) {
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
System.out.println("err " + line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//입력 stream을 BufferedWriter로 받아서 콘솔로부터 받은 입력을 Process 클래스로 실행시킨다.
|
||||
Executors.newCachedThreadPool().execute(() -> {
|
||||
// Scanner 클래스는 콘솔로 부터 입력을 받기 위한 클래스 입니다.
|
||||
try (Scanner scan = new Scanner(System.in)) {
|
||||
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin))) {
|
||||
while (true) {
|
||||
// 콘솔로 부터 엔터가 포함되면 input String 변수로 값이 입력됩니다.
|
||||
String input = scan.nextLine();
|
||||
// 콘솔에서 \n가 포함되어야 실행된다.(엔터의 의미인듯 싶습니다.)
|
||||
input += "\n";
|
||||
writer.write(input);
|
||||
// Process로 명령어 입력
|
||||
writer.flush();
|
||||
// exit 명령어가 들어올 경우에는 프로그램을 종료합니다.
|
||||
if ("exit\n".equals(input)) {
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
package cokr.xit.fims.framework.core.utils;
|
||||
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
/**
|
||||
*
|
||||
* @업무그룹명: XitHttpRequestHelper
|
||||
* @설명: HTTP Request 정보를 취득 한다.
|
||||
* @최초작성일: 2020. 9. 16. 오후 4:23:03
|
||||
* @최초작성자: 박민규
|
||||
* @author (주)엑스아이티 개발팀
|
||||
* @since 2002. 2. 2.
|
||||
* @version 1.0 Copyright(c) XIT All rights reserved.
|
||||
*/
|
||||
public class XitHttpRequestHelper {
|
||||
|
||||
public static boolean isInHttpRequest() {
|
||||
try {
|
||||
getCurrentRequest();
|
||||
} catch (IllegalStateException ise) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* <pre>메소드 설명: 현재 HttpServletRequest를 반환 한다.</pre>
|
||||
* @return HttpServletRequest 요청처리 후 응답객체
|
||||
* @author: 박민규
|
||||
* @date: 2020. 9. 16.
|
||||
*/
|
||||
public static HttpServletRequest getCurrentRequest() {
|
||||
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
|
||||
|
||||
return sra.getRequest();
|
||||
}
|
||||
|
||||
/**
|
||||
* <pre>메소드 설명: request의 Client IP 정보를 반환 한다.</pre>
|
||||
* @return String 요청처리 후 응답객체
|
||||
* @author: 박민규
|
||||
* @date: 2020. 9. 16.
|
||||
*/
|
||||
public static String getRequestIp() {
|
||||
return getCurrentRequest().getRemoteAddr();
|
||||
}
|
||||
|
||||
/**
|
||||
* <pre>메소드 설명: request의 요청 URL 정보를 반환 한다.</pre>
|
||||
* @return String 요청처리 후 응답객체
|
||||
* @author: 박민규
|
||||
* @date: 2020. 9. 16.
|
||||
*/
|
||||
public static String getRequestURI() {
|
||||
return getCurrentRequest().getRequestURI();
|
||||
}
|
||||
|
||||
/**
|
||||
* <pre>메소드 설명: request의 session을 반환 한다.</pre>
|
||||
* @return HttpSession 요청처리 후 응답객체
|
||||
* @author: 박민규
|
||||
* @date: 2020. 9. 16.
|
||||
*/
|
||||
public static HttpSession getCurrentSession() {
|
||||
return getCurrentRequest().getSession();
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
package cokr.xit.fims.framework.core.utils.egov;
|
||||
|
||||
import org.egovframe.rte.fdl.cmmn.exception.handler.ExceptionHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovComExcepHndlr.java
|
||||
* @Description : 공통서비스의 exception 처리 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------S
|
||||
* 2009. 3. 13. 이삼섭
|
||||
*
|
||||
* @author 공통 서비스 개발팀 이삼섭
|
||||
* @since 2009. 3. 13.
|
||||
* @version
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
public class EgovComExcepHndlr implements ExceptionHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComExcepHndlr.class);
|
||||
|
||||
/**
|
||||
* 발생된 Exception을 처리한다.
|
||||
*/
|
||||
@Override
|
||||
public void occur(Exception ex, String packageName) {
|
||||
LOGGER.debug("[HANDLER][PACKAGE]::: {}", packageName);
|
||||
LOGGER.debug("[HANDLER][Exception]:::", ex);
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package cokr.xit.fims.framework.core.utils.egov;
|
||||
|
||||
|
||||
import org.egovframe.rte.fdl.cmmn.exception.handler.ExceptionHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class EgovComOthersExcepHndlr implements ExceptionHandler {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComOthersExcepHndlr.class);
|
||||
|
||||
public void occur(Exception exception, String packageName) {
|
||||
//log.debug(" EgovServiceExceptionHandler run...............");
|
||||
LOGGER.error(packageName, exception);
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package cokr.xit.fims.framework.core.utils.egov;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.egovframe.rte.fdl.cmmn.trace.handler.TraceHandler;
|
||||
|
||||
/**
|
||||
* @Class Name : EgovComTraceHandler.java
|
||||
* @Description : 공통서비스의 trace 처리 클래스
|
||||
* @Modification Information
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- ------- -------------------
|
||||
* 2011. 09. 30. JJY
|
||||
*
|
||||
* @author JJY
|
||||
* @since 2011. 9. 30.
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
public class EgovComTraceHandler implements TraceHandler {
|
||||
|
||||
/**
|
||||
* 발생된 메시지를 출력한다.
|
||||
*/
|
||||
@Override
|
||||
public void todo(Class<?> clazz, String message) {
|
||||
log.debug("[TRACE]CLASS::: {}", clazz.getName());
|
||||
log.debug("[TRACE]MESSAGE::: {}", message);
|
||||
//이곳에서 후속처리로 필요한 액션을 취할 수 있다.
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue