
어떤 클래스를 리눅스 서버에 배포를 했더니 위와 같은 오류가 서버 로그에 출력이 되었다. 오류 내용은 java.awt.HeadlessException: no x11 display variable was set but this program performed an operation which requires it .... 생전 처음보는 오류라 이것은 뭔가 했더니 GUI 환경이 지원되지 않는 곳에서 GUI 관련 API(Java Swing, JavaFx, Java AWT 등)를 사용했을때 발생하는 오류라고 한다. 자바 코드에 이런 메소드를 사용하지는 않았는지 확인해본 결과.. 누군가가 javax.swing 의 메소드를 사용하고 있었다. 이부분을 제거하면 위의 오류는 해결된다.
spring security에서는 중복 로그인 방지를 다음과 같이 간단하게 수행할 수 있다. 하지만 login page를 통하지 않고 SSO로 로그인을 하기를 원하는 경우에는 위와 같은 방법이 통하지 않는다. login page를 통해 로그인을 하는 경우라면 AuthenticationFilter (username과 password를 사용하는 form 기반 인증)를 통과하며 유저 인증 처리를 진행하는데 SSO는 이런 과정과는 다르게 직접 인증처리를 구현해야 하므로 위와 같은 concurrency-control 의 제어를 사용할 수 없는 것이다. 그럴때 직접 컨트롤을 통해 중복 로그인 처리를 해줘야 한다. 중복 로그인 처리를 하기 위해서는 가장 중요한점은 현재 세션의 목록을 가지고 올수 있어야 한다. 세션의..

JaCoCo (Java Code Coverage)는 품질 측정 도구중 하나로 동적 소스 분석 툴에 해당한다. 쉽게 설명을 하자면 내가 개발을 하면서 100가지 기능을 만들었는데 이 기능들이 모두 잘 사용이 되고 있는지 검사를 해주는 거라고 생각하면 된다. 어플리케이션이 구동 중에 만든 기능들을 수행했는지 검사를 하기 위해서 JaCoCo는 agent 형식으로 WAS에 올라가야 한다. 테스트 코드를 충실하게 만들었다면 gradle이나 maven에 plugin을 이용하여 사용을 하기도 하는데 이 글에서는 어플리케이션을 직접 검사할 수 있는 WAS에 agent를 올려서 사용하는 방식을 소개한다. 1. jacocoagent.jar 파일을 구한다. Maven Repository: org.jacoco » org.ja..
logback이라던지 log4j2 등 비교적 최근에 나온 logging framework을 사용하면 appender를 이용해 시간이 오래 된 로그를 삭제할 수 있지만 그 전에 나온 log4j 등의 logging framework은 이런 기능이 없다. 따라서 서버에서 오래된 로그를 주기적으로 직접 지워줘야 하는데 이때 사용할수 있는 방법이다. 일단 적당한 위치에 다음과 같은 Shell Script를 작성한다. #!/bin/sh echo "#################### `date` delete log list ###########################" >> /logs/old/deleteOldLog.log find /logs -mtime +30 -type f -ls >> /logs/old/de..
spring에서 mssql datasource를 설정하는 방법이다. pom.xml 에서 mssql 연동을 위한 driver를 가지고 온다. com.microsoft.sqlserver sqljdbc4 4.0 applicationContext에서 datasource 설정을 다음과 같이 한다. (xml config version) url 에서 ip, port, dbname을, username, password를 해당 db의 정보에 맞게 수정해 주면 된다.

Jad는 Decompiler 이다. 다음 링크를 통해 Jad를 다운받을 수 있다. JAD Java Decompiler Download Mirror JAD Java Decompiler Download Mirror As http://www.kpdus.com is no longer accessible, JAD Java Decompiler download is extremely hard to find. Here is a mirror where you can get JAD for various platforms. Installation Unzip jad.zip file into any appropriate varaneckas.com 이 Jad를 이클립스와 연결시켜주는 녀석이 JadClipse이다. JadClips..
CORS 란 간단히 말해 서로 다른 도메인간 통신을 하는것을 승인하거나 차단하는 것. 차단이 되어 있을때는 여러가지 방법( eg. jsonp, proxy, 웹서버설정 등)으로 해결할수 있지만 그중 filter를 이용해서 해결하는 방법을 써본다. CORSFilter.java import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; impor..