Skip to content

[BUG] Failed to parse multipart servlet request 오류 발생 #242

@KingNono1030

Description

@KingNono1030

📌 마이페이지 프로필 업데이트 API 요청 시 multipart/form-data 파싱 오류 발생
📌 스웨거에서는 정상 작동하나, 프론트엔드에서 동일한 요청을 보내면 실패함


1. 문제 개요

  • 프론트엔드에서 마이페이지 프로필 업데이트 API(/v1/my-page/profile)를 호출하면 Failed to parse multipart servlet request 오류가 발생함.
  • 스웨거에서는 정상적으로 요청이 처리됨.
    하지만, 프론트에서 동일한 요청을 보냈을 때 서버에서 요청을 파싱하지 못함.

2. 발생하는 오류 메시지

{
    "isSuccess": false,
    "code": "COMMON500",
    "message": "Failed to parse multipart servlet request"
}

3. 요청 방식 및 시도한 해결방법

  1. 단순 문자열 전송
const requestData = `{
  "nickname": "뽀꼬",
  "introduction": "간단한 소개글을 작성해보세요!",
  "gitHub": "http://github.com/bboggo",
  "position": ["포지션1", "포지션2", "포지션3"],
  "techStacks": ["태그1", "태그2", "태그3"],
  "affiliation": "COMPANY_SCHOOL"
}`;

formData.append("request", requestData);  

Image

  1. JSON 으로 직렬화한 문자열 전송
const requestData = {
  "nickname": "뽀꼬",
  "introduction": "간단한 소개글을 작성해보세요!",
  "gitHub": "http://github.com/bboggo",
  "position": ["포지션1", "포지션2", "포지션3"],
  "techStacks": ["태그1", "태그2", "태그3"],
  "affiliation": "COMPANY_SCHOOL"
};

formData.append("request", JSON.stringify(requestData));  

Image

  1. Blob (application/json) 으로 변환 후 전송
const requestData = {
  "nickname": "뽀꼬",
  "introduction": "간단한 소개글을 작성해보세요!",
  "gitHub": "http://github.com/bboggo",
  "position": ["포지션1", "포지션2", "포지션3"],
  "techStacks": ["태그1", "태그2", "태그3"],
  "affiliation": "COMPANY_SCHOOL"
};

formData.append("request", new Blob([JSON.stringify(requestData)], { type: "application/json" }));  

Image

  1. 스웨거 상에서 요청

Image

  • 스웨거에서 정상적으로 요청이 잘 가는데, request 필드가 프론트에서 단순 문자열 보냈을 때와 일치

4. 요청사항

  • ultipart/form-data 요청을 처리하는 MultipartResolver 또는 Jackson 컨버터 관련 설정 점검 요청
  • formdata 의 request 키의 값이 어떤 형식을 따라야 하는지

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions