Author Archives: itpsolver

JEUS 에서 MultipartFile 저장시, 서버 루트 경로(/) 가 아닌 JEUS 어플리케이션 배포 경로를 기준으로 파일을 기록하려 시도하는 경우

By | 12월 22, 2021

진짜 JEUS는 알면 알수록, 겪으면 겪을수록 짜증이 난다. 톰캣에서는 잘 도는 것들이 왜 이리 안되는 것들이 많은지. 기존 오류 발생 코드 (MultipartFile => File) 이렇게 할 경우, targetFile의 위치가 엄연히 /로 시작하는 서버 루트에서부터의 경로임에도 불구하고, JEUS application 배포 경로부터 시작하는 긴 경로에서 파일을 찾아 기록하려고 하다가 에러를 발생시킨다. mFile.transferTo(targetFile); 수정한 코드 (MultipartFile => File)… Read More »

java.sql.SQLException: Protocol violation [ 0, ] … 사례

By | 12월 14, 2021

처음에는 오라클 db의 문제라고 생각했었으나, 로그를 거슬러 올라가니 OOME(GC overhead limit exceeded)가 원인임을 알게 되었다. 왜 OOME가 났는지 서버설정을 살펴보니, 누가 3기가로 설정해 놨던 heap memory를 1기가로 줄여놓았던 것이 원인이었다. 아놔..

org.apache.xerces.jaxp.SAXParserFactoryImpl cannot be cast to javax.xml.parsers.SAXParserFactory 오류 해결

By | 12월 10, 2021

환경 spring boot 1.5.22 (spring 4.3.25) JEUS 7 Fix#5 개요 잘 돌던 시스템이, apache poi를 pom에 추가한 시점부터 JEUS 서버 기동시 오류를 내뿜었다. (주로 logback.xml 을 읽지 못했다… 라는 내용의 로그였음) 해결 pom.xml > dependency > poi-ooxml 에 아래와 같이 exclusion 처리 추가 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> <exclusions> <exclusion> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> </exclusion> </exclusions> </dependency> 출처… Read More »

[React] SWR 조회시 무한루프에 걸렸던 사례 (useSWR, infinite loop)

By | 11월 4, 2021

모듈 상단에서 아래의 swr함수를 호출하는데, useMemo()가 불필요하다고 생각되어 제거했더니 무한루프가 걸렸었음. swr의 args로 들어가는 url string이 함수 내부에서 생성되어 계속 변경이 되니 무한루프가 발생했던 것이었음. 결국 useMemo()를 다시 사용하여 해결 function useSWR(type: string, query?: any) { const url = useMemo(() => { switch(type){ case '1': return '/board/01'; case '2': return '/board/02'; default: return null; }… Read More »

Jeus 어플리케이션(application) 배포(deploy, distribute) 관련 메모 (Jeus7 fix#5)

By | 12월 13, 2021

최초 배포 server를 (container) standby 상태로 기동 war 파일을 특정 경로에 업로드 application deploy path 항목에는 war파일 절대경로 기입 context path 설정 배포 중 오류가 발생한다면 admin server log, managed server log 를 함께 보면서 디버깅 해야 한다. 디버깅 해 본 결과 admin log는 문제 원인 파악에 혼란만 줄 경우가 많고 managed server log가 주로… Read More »

[ibatis/oracle] 내장 반복문을 통해 대량(배치, batch) insert 를 하는 샘플

By | 10월 21, 2021

Mybatis 아니고, 골동품인 Ibatis 입니다. 생각지도 못한 에러들이 나와서 (ora-00933 등..) 삽질을 했네요. (시간 아깝 ㅠ.ㅡ) <insert id="BatchDAO.insertMemberRest" parameterClass="java.util.HashMap"> INSERT ALL /* BatchDAO.insertMemberRest */ <iterate property="mberList" conjunction=" "> INTO COMTNGNRLMBERREST ( MBER_ID, PASSWORD ) VALUES ( #mberList[].MBER_ID#, #mberList[].PASSWORD# ) </iterate> SELECT * FROM DUAL </insert> 그런데 하다 보니 이것도 조심해야 할 것 같다는 생각이 들었다.… Read More »

java 리플렉션(reflection) 사용시, 부모(조상)클래스까지 재귀적(recursive)으로 찾아가면서 모든 필드(Field)를 열거하는 방법

By | 10월 11, 2021

apache commons-lang 3.2 이상을 사용하고 있다면 Field[] fields = FieldUtils.getAllFields([클래스]); 해당사항이 없다면 직접 구현 https://stackoverflow.com/questions/1042798/retrieving-the-inherited-attribute-names-values-using-java-reflection

IntelliJ 라이센스 갱신 (by jetbrain account)를 하려고 하는데, 에러(SignatureException: Signature doesn’t match or Signature length not correct)가 발생할 경우

By | 9월 27, 2021

방법 1. IntelliJ의 연결 설정 재조정 Go to: File -> Settings -> Appearance & Behavior -> System settings -> HTTP Proxy Select Auto-detect proxy setting Click Clear password Click check connection and provide the URL: https://account.jetbrains.com/login Go to Help -> Register and login 방법 2. jetbrain 웹사이트에서 그냥 offline key를 획득하여 인증

springboot 환경설정 메모 (ver 1.5.22)

By | 9월 23, 2021

web환경 (servlet..)을 제거하는 설정 application.yml spring: main: web-environment: false spring security 를 제거하는 설정 기동 클래스 @SpringBootApplication(exclude = { SecurityAutoConfiguration.class }) application.yml security: basic: enabled: false management: security: enabled: false

mariadb 쿼리 수행시 “Illegal mix of collations” 오류 케이스

By | 9월 4, 2021

평범한 select query 였는데, join 조건에서 오류가 발생했었다. SQL Error [1267] [HY000]: (conn=2246) Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '=' 두 테이블의 charset 같은 게 상이해서 그런가 싶긴 했는데.. 검색을 통해 아래와 같은 방법으로 해결했다. 수정 전 and a.COL1 = b.COL2 수정 후 and a.COL1 = binary b.COL2 (binary를 좌변, 우변 어느쪽에… Read More »

오라클 XE 18C (Oracle Database Express Edition) 윈도우용 설치 및 테스트 사례

By | 9월 2, 2021

진짜 한 10년 만에 오라클을 설치해 보는 것 같은데, 많이 바뀌어서 좀 헤멨다. 예전의 10g, 11g 같은 것은 라이센스가 없이는 다운로드를 받을 수 없게 바뀌었고, 그래서 최근 버전인 19c를 설치해 보려고 했는데, 얘는 설치화면 자체가 windows installer 답게 생기지 않은 것 부터 불안불안 하더니 결국 계속 알 수 없는 설치 실패로 포기. 그래서 알아보니 XE… Read More »

Mybatis 오라클 프로시저 (Oracle Stored Procedure) 호출시, ‘java.sql.SQLException: 해당 위치에 지원되지 않는 SQL92 토큰: 1:’ 오류 발생 케이스.

By | 8월 20, 2021

이 케이스는 그야말로 황당 그 자체! 결론부터 말하면 mybatis xml 에서, 중괄호와 소괄호를 다른 라인에 위치시켜서 발생 한 문제이다. 그것도 같은 프레임워크에서 돌리는 MariaDB 프로시저 호출시는 문제가 없는데, ‘오라클 프로시저 호출시에만’ 이 문제가 발생했다. 전혀 예상 못하고 헤멜뻔 했는데, 인터넷에 또 선구자가 계셔서 해결할 수 있었다. 잘못된 예 { CALL PKG_A.PROC_TEST( #{rsltcode, mode=OUT, jdbcType=VARCHAR}, #{rsltmsg,… Read More »

[MySQL/MariaDB] 프로시저(procedure) 내의 select into 절에서 아무리 select 해도 결과값이 변수에 바인딩 되지 않는 경우(null)

By | 8월 16, 2021

체크포인트 프로시저의 I/O 파라미터 명이 칼럼명과 같지 않은가? 프로시저 내부에서 선언한 변수명이 칼럼명과 같지 않은가? 이것때문에 대체 시간을 얼마나 소비한거야…ㅠㅠ..