개발자
안녕하십니까 선배님들. 스프링부트 API 서버를 개발하고 배포하였는데 다음과 같은 문제가 발생하였습니다. 로컬 환경에서는 잘 작동하지만, 배포 환경에서 특정 POST 요청에서 404에러가 발생하는 문제였습니다. 해당 요청은 JSON을 반환하는 컨트롤러입니다. 서핑을 하던 중, Spring Security의 CSRF의 문제일 수도 있다고 하던데 저는 현재 Security를 사용하지도 않고 다른 POST 요청은 잘 응답하여 뭐가 원인인지 잘 모르겠습니다. 아래는 application.yaml과 Controller 코드입니다. 감사합니다. // application.yaml spring: application: name: tika servlet: multipart: max-file-size: 50MB max-request-size: 50MB
답변 1
404라는 것은 URL을 아예 찾지 못했다는 뜻이죠. uploadFile 펑션 내에 log를 찍어보실때 나오지 않는다면, 클라에서 서버로 전달은 되지만 서버에서 동작이 안되는 겁니다. 그러면서 default response로 404를 떨구게 되겠죠. 로컬 환경에선 아무 이상이 없으나 배포 환경에서 서버단에서 404가 발생한다면 원인이 몇가지 추정됩니다. 아주 단골적인 문제이죠. 일단 CORS (Cross Origin Resource Sharing) 을 의심해 보시죠. 클라단과 서버단이 쓰는 도메인이 같은지 IP로 쓰고 있지는 않은지요. IP로 쓴다면 클라단과 서버단에 config에 해당 IP들을 인식할 수 있도록 해주어야 합니다. Nginx 예를 들면 Access-Control-Allow-Origin 이죠. Spring 단에서도 Config등에 Allow Origin 처리해줘야 합니다. 그렇게 한다면 CORS가 해결되어 통신이 정상 가능할 것입니다. 확인해보시기 바라겠습니다.
익명
작성자
1월 16일
선배님 신경써주셔서 감사합니다. 원인은 Docker image 캐싱 문제였습니다 ㅠㅠ 좋은 하루 보내세요
박정환
HecatonAI Lab Leader • 1월 16일
네, 해결하셔서 다행입니다. CORS가 아니어서 더 다행이네요. 수고하세요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!