Development/Daily Error 20

일간에러) Spring Boot2.6에서 Springfox3 실행 실패 에러

Intro Kotlin 프로젝트 였지만, Spring Boot 설정과 관련된 내용이기 때문에 java 로 프로젝트를 진행 하시는 경우에도 문제 해결을 하실 수 있습니다. Kotlin 과 스프링 부트를 이용해 API 서버를 만드는 강의를 따라 실습 해 보던 중 에러가 발생했습니다. 강의에서는 springfox 2.x 버전을 사용하며 새로나온 3.x 버전은 설정과정이 살짝 다르기때문에 구버전을 사용한다고는 했지만, 저는 얼마전 회사에서 진행중인 프로젝트에 springfox3.0.0 버전을 이용해 적용을 시켜본 경험이 있기 때문에 별 고민없이 3.0.0 버전을 적용 시켰습니다. build.gradle.kts implementation("io.springfox:springfox-swagger-ui:2.9.2")..

일간에러) IntelliJ IDEA에서 Lombok 패키지를 못 찾을 때

Intro 이제 스프링 부트 2.5 버전으로 마이그레이션 해서 프로젝트를 진행한지도 한달이 넘었습니다. 간만에 확인할게 좀 생겨서 다시 예전 버전으로 돌린 뒤에 인텔리제이에서 프로젝트를 실행 하려고 했는데 빌드가 맘처럼 되질 않았습니다. java: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate. Use build process "jps.track.ap.dependencies" VM flag to enable/disable incremental annotation processing environment. 위와 같은 에러가 먼저 뜨고 이어서 java:..

일간에러) Spring Boot 단독실행시 no main manifest attribute 에러 해결

Intro no main manifest attribute, in 에러 발생 지금까지는 외장 톰캣을 이용해서 어플리케이션을 배포 해 왔습니다. 하지만 스프링부트는 내장 톰캣을 가지고 있기 때문에 단독실행이 가능한데요, 단독 실행 했을때와 외장 톰캣으로 띄웠을때 각각의 성능 및 부하 테스트를 진행 해 보고 더 나은 방향으로 진행하기로 하여 기존에 만들어둔 war 파일을 바로 실행 해 보았습니다. 문제 그런데 기대와는 다르게 manifest 관련 에러가 발생 했는데요, 복잡한 문제는 아니지만 생각보다 검색했을 때 뚜렷한 해법을 찾기가 어려웠기 떄문에 글로 남겨 보려고 합니다 실행이 안되는 상황의 war 패키지 내 트리 구조 원인 말그대로 manifest 파일을 찾지 못했기 때문입니다. jar 혹은 war파일..

일간에러) java: incompatible types: java.lang.String cannot be converted to org.slf4j.Marker

Intro 오래전부터 이어진 Spring Boot 버전 마이그레이션 작업의 일환으로, 메인급 프로젝트들의 작업은 마무리가 되었지만 여러가지 요구사항에 의해 fork 이후 여러 갈래로 갈라진 branch 격의 프로젝트들도 손을 봐야 하는 상황. 워낙 스프링부트 마이그레이션 작업 후 고생을 많이 했던 덕에 이제는 왠만한 오류는 떠도 한번쯤 봤던 내용들이기 때문에 크게 당황하는 일도 없고, 속도도 꽤나 붙은 상황이다. 그러던 중 간만에 새로운 에러메시지가 보여 반가운 마음에 미래를 대비해 정리 해 두려고 한다. 오류 java: incompatible types: java.lang.String cannot be converted to org.slf4j.Marker 단순하게 log를 찍는 상황인데, 기존에 작성 ..

일간에러) 3 Spring WebApplicationInitializers detected on classpath

Intro 톰캣 8.5 버전으로 프로젝트를 실행하는데 어플리케이션이 기대한 대로 동작 하지 않았다. 로컬에서는 아무 문제 없이 잘 작동했는데 도커로 톰캣 컨테이너를 띄워 실행키기면 계속 문제가 발생했다. 심지어 에러 로그도 쉽게 찾을 수가 없었다. tomcat/logs 경로에서 catalina.2022-04- 으로 시작하는 로그에서는 마치 정상적으로 실행 된 것 처럼 보였는데 localhost.2022-04- 로 시작되는 로그 파일을 확인 하자 그제서야 아래와 같은 에러 메시지를 보여줬다. 13-Apr-2022 13:10:54.092 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log 3 Spring WebApplica..

Development/Daily Error 2022.04.15 (2)

일간에러) application.yml 파일을 못읽을때 spring.config.location

문제 최근 프로젝트의 Spring Boot 버전을 1.5 에서 2.5로 마이그레이션을 진행 한 후 로컬에서 수많은 테스트를 거쳤습니다. 최근에는 개발 서버에도 올려서 정상적인 작동을 확인 하였고 이제 운영 서버에 반영을 시도 할 때가 되었습니다. 스프링부트 버전을 업그레이드 한 7개의 패키징을 갈아 끼우고, docker-compose up -d 을 외칩니다. 도커 컨테이너가 하나 둘 씩 문제없이 뜨기 시작합니다. status를 보니 UP, UP, UP, UP, UP, 그 가운데 슬며시 껴있는 Restarting 하나. 어플리케이션이 딱 하나 구동되지 못하고 계속 재 시작 되고 있습니다. 로그를 확인 해 보니 Caused by: java.lang.IllegalArgumentException: Could n..

일간에러) Spring Session과 Cookie SameSite 정책

Intro SpringBoot 1.5 버전에서 2.5 버전으로 마이그레이션 작업이 대부분 완료 되었는데 SAML을 이용한 SSO 로그인 부분에서 굉장히 오래동안 해결하지 못하던 문제가 있었습니다. 분명 해당 부분의 코드는 전혀 변경이 없었는데 단지 스프링부트 버전이 달라졌다고 해서 예전 버전에서는 되고 지금은 안되는게 통 이해가 되지 않았습니다. 문제 일단 원인은 본 글의 제목처럼 Spring Session에서의 Cookie SameSite 정책 변경 때문이었습니다. 왜 이게 문제가 되었고 스프링부트 버전과 Cookie 정책이 어떤 연관관계가 있으며 어떻게 해결을 할 수 있는지에 대해 알아보겠습니다. 로그인 성공과 실패시 요청의 차이 SSO 로그인에 성공하던 요청 SSO 로그인에 실패하고 있는 요청 일단..

일간에러 More than one fragment with the name [spring_web] was found.

Intro Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering. adm_1 | at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2205) adm_1 | at org.apache.tomcat.util.descriptor.web.WebX..

일간에러 2022-03-15 WARN No appenders could be found for logger

Intro log4j:WARN No appenders could be found for logger (io.github.makbn.thumbnailer.util.mime.MimeTypeDetector). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.Spring Project 실행 시 위와 같은 에러가 발생했다. 일단 log4j 1.2 라는 에러 문구에서 쉽게 느낌이 왔기 때문에 어렵지 않게 해결 할 수 있겠다. 원인 일단 위에서 안내 해 주는 링크로 이동하면 https://logging.apache.or..

일간에러 2022-03-04 Lombok@Slf4j 적용 에러 해결

Error java: Can't get the delegate of the gradle IncrementalProcessingEnvironment. java: cannot find symbol symbol: variable log location: class openapi.OpenApiController롬복 플러그인을 활용해 @Slf4j 어노테이션을 사용하던 중 위와 같은 에러 발생. 해결 방법1 보통의 경우에는 Annotation Processor 설정이 안되있거나 Lombok 플러그인이 설치되어 있지 않을 때 발생. 둘중 하나라도 걸린다고 생각한다면 Lombok 플러그인이 설치되어 있는지 확인 하고, 없으면 설치 Preferences -> Build, Execution, Deployment -..

일간에러 2022-02-10 Name for argument of type [java.lang.String] not specified

Intro 영한님의 JDK 동적 프록시를 활용한 동적 프록시 기술을 실습 해보던 중 예기치 못한 에러가 발생했다. 응답 코드는 500이며 에러 전문은 아래와 같다. java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either. at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.updateNamedValueInfo(AbstractNamedValueMethodArgumentResolver..

일간에러 2022-01-11 remaining connection slots are reserved for non-replication superuser connections

Postgres 에러 증상 remaining connection slots are reserved for non-replication superuser connections 커넥션이 충분히 있는데도 커넥션을 얻지 못함. iRods에서도 커넥션을 얻지 못하니 파일 업로드를 하다가 빈번히 Connection reset이 되어 버림 원인 커넥션이 말라버려서 더이상 제공할 커넥션이 없음. 해결 보통은 커넥션 수를 늘리는 방법으로 해결하는 경우가 많은데 max_connections 를 먼저 확인 해 본다. select * from pg_settings where name='max_connections'; max_connections가 100으로 세팅 되어 있는데, 이 경우에는 운영중인 서버도 아니고..

일간에러 2022-01-04 iRODS:-24000

iRods The Integrated Rule-Oriented Data System https://irods.org/ 아마 대부분 처음 들어보셨을 거라 생각해 간단한 설명을 붙여보려 합니다. iRODS는 전세계의 연구, 기업, 정부기관등이 사용하는 오픈소스 데이터 관리 소프트 웨어 입니다. mission critical 한 환경에서의 production 레벨을 목표로 릴리즈 되었으며, 데이터 저장소 리소스를 가상화하기 때문에 사용자가 데이터가저장된 디바이스와 상관 없이 데이터를 다룰 수 있게 해 줍니다. 사실 한국어로 된 레퍼런스는 논문 한두개를 제외하면 전무하기 때문에 영어로 자료를 검색 해야 하는데, 그마저도 잘 정리된 도큐먼트가 없기 때문에 정보를 얻으려면 주로 Github에 올라온 issue들을 ..

일간에러 2021-12-29

'append' called on an object that does not implement interface FormData. 문제 jQuery Ajax와 FormData를 이용해 파일을 비동기로 업로드 하던 중 해당 아래와 같은 에러 발생 'append' called on an object that does not implement interface FormData 코드는 다음과 같다. $('#migration_form').on('submit', function () { var formdata = new FormData(); const file = $('#input_file')[0].files[0]; formdata.append..

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

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