이전에 이와 거의 유사한 오류를 조치한 적이 있었다. An illegal reflective access operation has occurred 오류 조치 application의 OSS version을 올리는데 특정 기능을 수행중에 위와 같은 Warning이 발생하였다. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apach.. oingdaddy.tistory.com 놀라운건 두달이 지난건데 기억이 전혀 나지 않는다.. 이때는 결국 poi 의 version 문제로 밝혀졌는데 이번에는 또 조금 다르다. WARNING: An illegal reflective acces..
어플리케이션 실행 시 UnsupportedClassVersionError을 만나는 경우가 있다. 이건 내 환경의 JVM의 버전보다 더 높은 버전의 java class 파일을 읽으려고 할 때 발생을 한다. 일단 java class file version을 살펴보자. JDK Version Bytecode Version Java 1.0 45.0 Java 1.1 45.3 Java 1.2 46.0 Java 1.3 47.0 Java 1.4 48.0 Java 5 49.0 Java 6 50.0 Java 7 51.0 Java 8 52.0 Java 9 53.0 Java 10 54.0 Java 11 55.0 Java 12 56.0 Java 13 57.0 Java 14 58.0 Java 15 59.0 Java 16 60.0 ..
java 9 이상에서는 다음과 같이 간단하게 application 자신의 pid를 확인할 수 있다. Long pid = ProcessHandle.current().pid(); 소스 상에서 가지고 오는 방법은 위와 같고, log상에서 확인하는 방법은 springboot의 기본 로깅 패턴을 사용한다면 바로 확인할 수 있다. logging pattern에 직접 넣어서 사용하려면 pid에 해당하는 ${PID:-} 를 pattern에 추가하면 된다. 끝!
여러국가에 적용되는 시스템을 구현해야 하는 상황이라 timezone에 대해 고민하고 있었는데 생각지도 못한 Summer Time 에 대한 이야기가 흘러나왔다. 이것도 고려가 되어야 한다고 한다. 우리나라도 이 Summer Time을 시행한적이 있었다고 한 사실을 알고 놀랐다. 우리나라에서 Summer Time을 겪은 사람은.. 많이 고참들이시다. (라떼 주의) Summer Time에 대해 궁금하면 이 글을 참조하도록 하자. Summer Time이 어려운점은 이게 기업의 로비같은걸로도 바뀔수 있을만큼 동적이라는 것이다. 예를 들자면 어느 나라에서는 2020년에는 4월 14일부터 시작하고 2021년에는 4월 30일에 시작할수도 있다. 따라서 이걸 library 형태로 만들어서 계속 쓰는건 불가능에 가깝다. ..
JAVA app을 기동시 콘솔 최상단에 다음과 같은 로그가 뜨는 경우가 있다. Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true 이건 ip 표현방식을 기본으로 되어 있는 ip6방식을 사용하지 않고 ip4방식을 사용하겠다는 것이다. 음.. 나는 jvm 옵션으로 아무것도 주지 않았는데... 이거는 어디서 어떻게 설정이 되어서 로그에 찍히는것일까.. 답은 시스템에 존재하는 모든 jvm에 대한 전역 설정이 되어 있어서 그렇다. 이건 시스템 환경변수 설정에서 할 수 있다. 아무것도 설정하지 않았는데 Picked up JAVA_TOOL_OPTIONS 어쩌고 저쩌고 뜨는건 환경변수 세팅하는 곳(내컴퓨터 - 고급시스템 설정 - 고급 - 환경변수)에 가보면 답이..
application의 OSS version을 올리는데 특정 기능을 수행중에 위와 같은 Warning이 발생하였다. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.poi.util.DocumentHelper (file:/C:/Users/User/.m2/repository/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar) to method com.sun.org.apache.xerces.internal.util.SecurityManager.setEntityExpansionLimit(int) WARNING: Please co..
앞서 다음과 같이 EhCache를 사용하는 방법과 설정하는 방법에 대해 살펴보았다. Springboot + Ehcache 초간단 설정 및 사용방법 cache는 거의 변경될 여지가 없는 DB 조회 결과값을 메모리 혹은 디스크에 보관하고 있다가 다시 호출되었을때는 DB 조회를 하지 않고 메모리에 있는 결과값을 그대로 쓰고 싶을때 사용한다. 많은 oingdaddy.tistory.com EhCache xml config를 java config로 변환하기 spring의 version이 올라가면서 모든 설정은 java config로 하기를 권장하고 있다. 이에 따라서 관련된 글도 포스팅도 여러개 했었다. Spring 설정 Xml Config에서 Java Config로 바꾸는 방법 (요령) spring 프로.. oi..
spring의 version이 올라가면서 모든 설정은 java config로 하기를 권장하고 있다. 이에 따라서 관련된 글도 포스팅도 여러개 했었다. Spring 설정 Xml Config에서 Java Config로 바꾸는 방법 (요령) spring 프로젝트에서 springboot 프로젝트로 migration 하기 (6) - XML config to JAVA config spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml spring 프로젝트에서 springboot 프로젝.. oingdaddy.tistory.com spring 프로젝트에서 springboot 프로젝트로 migration 하기 (6) - XML config to JAVA config spr..