Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions