본문 바로가기

Java, JSP15

log4j2 WAS shutodown memory leak 문제 log4j2 사용 시 log4j2.xml에 아래 예제 같이 monitorInterval="초" 속성을 추가하고 WAS를 shutdown 할 시 "appears to have started a thread named [Log4j2-TF-4-Scheduled-] but has failed to stop it. This is very likely to create a memory leak." 이러한 메시지가 콘솔에 찍히는 거에 대한 해결방안을 알아본다. web.xml에 아래 2가지 방법 중 하나를 추가하면 memory leak 현상을 피할 수 있다. isLog4jAutoInitializationDisabled true org.apache.logging.log4j.web.Log4jServletContextLis.. 2019. 9. 26.
Java에서 서로 다른 두 List 간 Join 방법 디비 테이블 조인을 지양할 때 어쩔 수 없이 자바에서 조인을 해줘야 하는 상황이 발생할 경우 해결방안 아래 예제는 inner join만 사용 1. 아래 사이트 맨 하단에 메이븐을 내 프로젝트에 등록 및 아래 사이트 가이드 참고 글 쓰는 시점에서의 버전은 0.9.12 https://github.com/jOOQ/jOOL org.jooq jool 0.9.12 2. 각 테이블 목록을 조회 후 inner join 수행 import static org.jooq.lambda.tuple.Tuple.tuple; // 중요 ... @Service public class UserService { @Autowired private CommonDao commonDao; public List getUsers() { List us.. 2017. 5. 18.
메이븐 로컬저장소에 직접 등록 명령어 메이븐 중앙저장소에 없는 라이브러리는 로컬저장소에 직접 등록해주어야 하는데 로컬저장소에 등록하는 메이븐 명령어는 다음과 같다. mvn install:install-file -Dfile=C:\cos-26Dec2008\lib\cos.jar -DgroupId=com.servlets -DartifactId=cos -Dversion=26Dec2008 -Dpackaging=jar -DgeneratePom=true mvn install:install-file -Dfile=C:\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -DgeneratePom=true mvn install:install-file -Df.. 2016. 12. 14.
ThreadLocal(스레드로컬) ThreadLocal(스레드로컬)- 각 스레드마다 자신만이 쓸 수 있는 자원을 관리해주는 클래스 2가지 구현 방식이 있고 사용법은 간단하다.1. ThreadLocal 객체화ThreadLocal threadLocal = new ThreadLocal();threadLocal.set("test");System.out.println(threadLocal.get()); 2. ThreadLocal 상속 받은 클래스 객체화initialValue() 메소드를 오버라이딩하여 초기값을 줄 수 있다(get() 호출 시 수행).public class ThreadLocalHelper extends ThreadLocal {@Overrideprotected String initialValue() {return "test";}} 3.. 2016. 8. 16.
Apahce poi 엑셀 읽기(파싱) 엑셀 2007 이전 xls 엑셀 2007 부터 xlsx 에 대한 처리를 지원하는 Apache poi에 대해서 알아본다. poi는 아파치 오픈 소스로서 엑셀을 읽거나 쓸 수 있다. 여기선 읽는 부분에 대해서 살펴보겠다. 홈페이지: http://poi.apache.org/ 여기선 poi-3.14 버전으로 구현 기본적으로 엑셀을 읽는데 크게 2개의 클래스를 아래와 같이 제공한다. HSSF: xls 읽기 XSSF: xlsx 읽기 확장명에 따라 처리가 가능하지만 2개를 나누어서 처리하기보다 WorkbookFactory.create를 쓰면 쉽게 처리가 가능하다. 예제 // 엑셀파일, 패스워드, 읽기전용 // 첫 번째 인자 엑셀 파일은 타입에 따라 생성 클래스가 다른데 살펴볼 필요가 있다. Workbook workb.. 2016. 7. 31.
Java ServerSocket Multithereading 예제 Java 1.4.2부터 NIO가 나와있지만기본인 BIO 소켓 처리 예제를 다룬다. 사실 NIO 코딩이 더 어렵다.채널, 바이트버퍼, 셀렉터 등등...MINA나 Netty 프레임웍을 쓰면 좀 쉽게 처리가 가능하다. 아래는 BIO 소켓서버 처리 코드이다. ServerSocket1.javaimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import j.. 2016. 4. 25.