>Java >java지도 시간 >Jersey RESTful 웹 서비스에서 파일과 그에 수반되는 데이터를 동시에 업로드하는 방법은 무엇입니까?

Jersey RESTful 웹 서비스에서 파일과 그에 수반되는 데이터를 동시에 업로드하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-30 22:50:11482검색

How to Upload Files and Accompanying Data Simultaneously in a Jersey RESTful Web Service?

Jersey RESTful 웹 서비스에서 동반 데이터와 함께 파일 업로드

시스템에서 직원을 생성할 때 이미지와 함께 이미지를 포함할 수 있습니다. 그들의 개인 정보. 별도의 REST 호출을 사용하여 이 작업을 수행할 수도 있지만 단일 호출을 사용하는 것이 더 효율적입니다. 이 글에서는 파일과 직원 데이터를 동시에 수신할 수 있도록 하는 솔루션을 제공합니다.

이를 달성하려면 다음과 같이 Java 메소드를 수정하십시오.

@POST
@Path("/upload2")
@Consumes({MediaType.MULTIPART_FORM_DATA})
public Response uploadFileWithData(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("emp") Employee emp) {

    // ..... business login
}

JSON에서 구조에 따라 직원 데이터는 이제 다중 부분 요청의 일부입니다.

{
    "emp": {
        "Name": "John",
        "Age": 23,
        "Email": "[email protected]",
        "Adrs": {
            "DoorNo": "12-A",
            "Street": "Street-11",
            "City": "Bangalore",
            "Country": "Karnataka"
        }
    }
}

추가 고려 사항

  • Jersey는 단일 요청 내에서 여러 콘텐츠 유형을 허용하지 않습니다.
  • 일부 클라이언트는 개별 신체 부위에 대한 콘텐츠 유형 설정을 지원하지 않을 수 있습니다(예: Postman 및 FormData를 사용할 때 브라우저).
  • 이 문제를 해결하려면 JSON을 역직렬화하기 전에 Content-Type을 명시적으로 설정하세요. 데이터:
jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE);
Employee emp = jsonPart.getValueAs(Employee.class);
  • 또는 String 매개변수를 사용하고 Jackson ObjectMapper와 같은 라이브러리를 사용하여 JSON을 역직렬화할 수 있습니다.

다음 단계를 따르면, Jersey를 사용하면 단일 REST 호출로 파일과 관련 직원 데이터를 성공적으로 업로드할 수 있습니다.

위 내용은 Jersey RESTful 웹 서비스에서 파일과 그에 수반되는 데이터를 동시에 업로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.