일간에러 2021-12-22 파일 다운로드시 한글 파일명 처리

문제 드디어 파일 업로드 모듈을 성공적으로 붙여서 테스트를 마치고 운영 서버에 반영을 해 보았다. 파일이 업로드도 잘되고, 업로드 한 파일을 다운로드도 잘 하고. 문제가 전혀 없는 듯 보였는데.. 하필(?) 샘플 코드로 받았던 jsp파일을 한글 파일명 테스트 겸사 해본다고 한글파일.jsp로 파일명을 바꿔서 업로드를 하니 업로드에는 문제가 없었는데 다운로드 할 때 404 에러가 발생했다. 정말 다 끝났다고 생각 했고, 같은 파일의 업로드가 개발 환경에서는 아무 문제가 없었기 때문에 굉장히 골치가 아파지던 상황. 원인 정말 신기한건 다른 한글 파일명에도 문제가 없었고, 심지어 확장자를 조금 변경해 한글파일.jyp 로 바꿔도 아무 문제 없이 작동했다. 또 어떤 다른 확장자가 들어갔을 때 같은 에러가 터질지 몰..

Development/Daily Error 2021.12.23
일간에러 2021-12-21 파일 업로드시 파일명 깨짐

오류 파일 업로드&다운로드 처리를 위한 모듈을 중간에 연결해 파일 업로드를 구현하던 중. 파일명이 영문이나 심지어 일본어로 되어 있어도 정상적으로 업로드 처리가 되었는데, 한글만 있으면 파일명이 깨지는 문제가 발생했다. 단순히 파일명만 깨지는 선에서 끝난다면 파일 명을 어딘가 기록 해 두고 어떻게든 우회하는 방법으로 처리 할 수 있겠지만, 문제는 위에 보이는 것 처럼 _start_offset 과 _end_offset을 기록하며 innorix 모듈이 파일을 쪼개서 전송하는 것 이었다. 파일 업로드가 한 요청으로 끝나는게 아니고 클라이언트 쪽에 설치된 이로릭스 클라이언트를 통해 브라우저 -> innorix(port:4033) -> 서버 과정으로 요청이 여러개로 쪼개져 전달되며 업로드 상태도 계속해서 업데이트..

Development/Daily Error 2021.12.21
일간에러 2021-12-20 Corrupt form data: premature ending

오류 innorix 파일 업로드 모듈을 진행중인 프로젝트에 붙이는 과정에 컨트롤러에서 다음과 같은 에러가 발생했다. Corrupt form data: premature ending 샘플 코드를 WAS에 단독으로 올려서 테스트 해봤을 때에는 문제없이 작동 되는걸 확인 했는데, 스프링 부트 프로젝트에서 모듈을 붙이려니 자꾸 에러가 발생했다. 심지어는 샘플 코드를 그대로 붙여 넣어 테스트 해보아도 같은 에러가 발생했다. 번역을 그대로 해 보면, 데이터가 손상되었고 조기에 종료 되었다는 내용이다. 원인 에러가 나는 코드를 타고 들어가보니, MultipartRequest를 모듈 내부에서 readNextPart() 돌리며 스스로 처리 하고 있었다. 스프링에서 익숙 하게 사용 하는 List files 방식을 사용는게..

Development/Daily Error 2021.12.20
일간에러 2021-12-01 createPopper is not a function

에러 s.createPopper is not a function라는 에러가 나오며 부트스트랩 드랍박스가 의도한 대로 작동하지 않았습니다. 혹시나 싶어 Bootstrap 공식 document의 엘리먼트 구조를 그대로 넣어도 봤지만, 여전히 작동하지 않았습니다. 원인 bootstrap.bundle.min.js 파일이 Popper를 포함하고 있다고 써 있습니다. Popper 라이브러리를 불러오지 않았기 때문에 에러 발생한 것 입니다. 해결 bootstrap.bundle.min.js 파일을 다운받아 추가합니다. 혹은 cdn으로 추가해도 무방합니다. 물론, Bootstrap 버전은 사용중인 버전을 찾아야 합니다. https://getbootstrap.com/docs/5.1/getting-started/downlo..

Development/Daily Error 2021.12.02
일간 에러 2021-11-19

I cannot be cast to java.lang.Integer 문제 JPA Restrictions의 in 절 파라미터에 int 배열을 전달 했더니, 쿼리를 만들어 내지 못하며 I cannot be cast to java.lang.Integer 에러가 발생했다. int[] actions = { Constants.READ, Constants.ADMIN, Constants.SUBMIT, Constants.REVIEW,Constants.WORKFLOW } Restrictions.in("actionId", actions))); 해결 과정 혹시 쿼리에는 String만 들어가야 하나 해서 Parameter를 String 배열로 변환 해 전달 해 보았다. Arrays.stream(collectionMembers)..

Development/Daily Error 2021.11.19