앞서 Spring Batch의 다음과 같은 샘플들을 구현해보았다. [Spring Batch] Partitioner Simple Example (Springboot based) [Spring Batch] Chunk Example (DB to File, Springboot based) [Spring Batch] Skip/Retry Simple Example (Springboot based) [Spring Batch] Parallel(병렬처리) Example (Springboot based) [Spring Batch] Tasklet Example (Springboot based) [Spring Batch] Listener Example (Springboot based) [Spring Batch] Chunk E..
Springboot에 내장된 Tomcat에 대해 설정하는 방법에 대해 알아보도록 하자. 일반적인 Tomcat을 쓸때는 HeapSize라던지 HeapDump, Log 등등에 대한 설정을 Tomcat 시작 파일인 startup.sh 나 catalina.sh 파일 등에 설정을 하고 사용을 했었다. 하지만 이런 것들은 Embedded Tomcat을 사용하면 별도로 구현하지 않는 이상 사용할 수 없다. 그래서 Embedded Tomcat을 사용할때는 다른 방법이 필요하다. 다행히 여러가지 방법이 있다. Springboot Embedded Tomcat JVM Option 설정은 Maven 을 사용한다는 가정하에 진행하도록 한다. 1. Springboot 기동시 JVM Argument에 설정하기- Springboot..
ORA-01861: literal does not match format string .. 아주 골치 아픈 오류였다. 왜 골치가 아팠냐면 내 로컬이나 AS-IS 서버에서는 잘 동작하는데 새로 이전을 할 서버에서는 위와 같은 오류가 나며 동작하지 않았다. 특정 환경에서 안되니 문제에 접근할때 특정 환경과 잘 되는 환경의 차이를 분석해 봐야 한다. 분석을 할때 되는 곳과 안되는 곳에서 아래의 구문을 DB developer 에서 한번 돌려보도록 하자. SELECT * FROM nls_session_parameters WHERE PARAMETER LIKE '%DATE%' OR PARAMETER LIKE '%LANG%'; 그럼 위와 같이 DB의 NLS_LANGUAGE, NLS_DATE_FORMAT, NLS_DAT..
지금은 많이 사용되지는 않지만 Jenkins에 Ant를 연동해서 빌드를 해야 하는 경우가 종종 있다. Jenkins에서 Ant를 연동하는 방법은 Jenkins를 통해 자동으로 설치하는 방법, Ant를 따로 설치하고 Jenkins에 연동하는 방법이 있다. Jenkins에 Ant연동 다른 솔루션과의 연동을 주로 하는 부분인 Global Tool Configuration에서 Ant와 연동을 할 수 있다. 내리다 보면 Ant도 있다. Ant installations를 누른다. Ant 자동설치 그럼 위와 같이 Ant에 대한 무언가가 짠 나오는데 여기서 Install automatically 를 체크하고 Name 부분에 대충 Ant의 name을 작성하고 저장을 누르면 Ant가 자동설치 된다. 저장을 누른다고 바로 ..
[Spring Batch] Chunk Example (DB to File, Springboot based) [Spring Batch] Skip/Retry Simple Example (Springboot based) [Spring Batch] Parallel(병렬처리) Example (Springboot based) [Spring Batch] Tasklet Example (Springboot based) [Spring Batch] Listener Example (Springboot based) [Spring Batch] Chunk Example (File to DB, Springboot based) 앞에 Springboot 기반의 Batch에 대해 위와 같은 예제를 통해 알아보았다. 이번에는 Partiti..
프로젝트를 import를 했더니 다음과 같은 오류가 발생하였다. javax.xml.bind.* 하위에 있는 JAXBContext, JAXBException, Unmarshaller 이런 애들을 찾을수가 없다고 나온다. 원인을 파악해보니 import 한 프로젝트는 JDK 1.8로 진행을 했는데 내 로컬 개발환경(STS)에서는 JDK 11 버전을 사용하고 있어서 위와 같은 오류가 발생을 한 것이다. 이게 다른데 왜 오류가 발생하냐면 JDK 11에서는 jaxb dependency가 사라졌기 때문이다. 즉 JDK 1.8이 설치되어 있으면 jaxb를 따로 종속성 추가를 해주지 않아도 되었었는데 JDK 11 부터는 별도로 넣어줘야 한다는 것이다. 조치는 다음과 같이 JDK 11으로 되어 있는 설정을 바꿔주면 된다...
이클립스에서 프로젝트를 새로 import 해서 받았는데 the import javax servlet http cannot be resolved 오류가 발생하였다. 문제가 되는 클래스들은 javax.servlet.http.* 에 속해있는 HttpServletRequest, HttpServletResponse 등등이다. 원인은 Java 자체적으로 Servlet을 포함하고 있지 않기 때문이다. 따라서 프로젝트에 Servlet package를 포함시켜주면 된다. 보통은 WAS에서 이런 Servlet package를 가지고 있으므로 프로젝트 Runtime에 참조할 수 있도록 조치를 해주면 된다. 필자는 tomcat 환경에서 진행을 하도록 하겠다. 일단 이클립스에 tomcat이 설치가 되어 있지 않아서 tomcat..
Kubernates로 올린 pod가 어느 순간 Evicted 상태가 되었다. Evicted는 무슨 뜻일까? 사전을 보면 쫓겨난 혹은 추출된 이라는 뜻이다. 이는 보통 디스크 자원이 부족하여 강제로 추출되어진 pod라고 보면 된다. (필자의 경우) $ kubectl describe pod 이렇게 하면 맨 아래 부분에서 무슨 문제가 발생을 했는지 확인할 수 있다. 이 상태로 있는 pod가 있으면 다시 실행을 해도 실행되지 않고 지워준다음 다시 시작을 해야 한다고 한다. 그럴때 이 Evicted Status인 pod를 삭제하는 방법은 다음과 같다. $ kubectl -n default delete pods --field-selector=status.phase=Failed 위와 같이 하고 다시 get pods ..