본문 바로가기

전체 글

mod_proxy_ajp : SEVERE: BAD packet signature apache + tomcat 연동시 mod_proxy_ajp를 사용하면서 특정상황에서만 나오는 오류. API호출시 requestbody에 많은 양의 데이터를 포함해서 보내면, 수백번에 한번, 또는 수십번.. 또는 딱 한번만에 아래와 같은 오류를 내뱉는 오류. org.apache.jk.common.MsgAjp processHeader SEVERE: BAD packet signature 16378 관련해서 손권남(키튼)과 함께 문제를 파악해보니 mod_proxy_ajp 버그였다. mode_proxy_ajp->> mod_proxy_http로 전환 후, 그런 오류는 나오지 않고 있다. ㄸㅂ.. 이거 찾는데 2-3일은 소비한듯 하다.. 오류가 400으로 뜨는데, 잘될때는 되따 잘되... 여튼 해결. 더보기
@CacheKeyMethod 를 구현한 클래스에는 equals와 hashCode를 Override @ParameterValueKeyProvider@CacheKeyMethod 를 구현한 클래스에는 equals와 hashCode를 Override 하는 것이, 고생길을 막아줄 것이여...좀 믿어!~ 관련 포스트는 향후에.. 더보기
Ubuntu MySQL 5.5 to 5.6 ubuntu 기본 repository가 5.5에 맞춰져 있어서 그렇게 설치했다가.. datetime과 timestamp의 문제로 인해 5.6으로 업그레이드를 하게되는데....뚜시꿍. 우선 backup 후, 1. http://dev.mysql.com/downloads/mysql/ 에서 repository등록. 2. 기존 mysql 삭제.http://www.cyberciti.biz/faq/uninstall-mysql-ubuntu-linux-command/ 3. 설치https://help.ubuntu.com/12.04/serverguide/mysql.html #] sudo service mysql start 문제는 기존 mysql의 잔재가 조금이라도 남아있을 경우 설치중 오류를 많이 볼 수 있다. 깨끗하게 지.. 더보기
Sonar : Performance - Inefficient use of keySet iterator instead of entrySet iterator 가끔 소나 누님이 내뱉는 크리티컬 문제이다. 예전( 1.5 이전?)에 Map을 KeySet에 의해 루프를 돌던 형태인데, 이경우 key에 의한 룩업 과정을 한번 더 거치게 되므로 성능상 불이익이 있다는 얘기란다. 사실 얼마나? 로 물어보면 딱히... 여튼 소스는 이렇게 수정했다. 이전 코드Set optionKeySet = optionsMap.keySet();for (Long optionKey : optionKeySet) { options.add(optionsMap.get(optionKey));}return options; 이후코드 for (Entry entry : optionsMap.entrySet()) {options.add(entry.getValue());}return options; 근데, 담겨지는.. 더보기
BigDecimal 의 divide 결과 java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result 아무리 BigDecimal이라고 해도 제한없는 숫자를 다룰 수는 없는 거지. divide시 필히 자리수와 결과셋을 지정해줘야 한다. bigDecimal.divide(bd, 2, BigDecimal.ROUND_CEILING); 요로코롬 더보기