=====================================================
Java Jersey는 RESTful 웹 서비스를 구축하기 위한 프레임워크로, 파일 업로드도 간편하게 처리할 수 있습니다. 이번 글에서는 Java Jersey에서 파일 업로드를 처리하는 방법에 대해 알아보겠습니다.
-
의존성 추가하기
먼저, 파일 업로드 기능을 사용하기 위해
jersey-media-multipart
의존성을 추가해야 합니다. Maven을 사용한다면pom.xml
파일에 다음 의존성을 추가합니다.
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.30</version>
</dependency>
Gradle을 사용한다면 build.gradle
파일에 다음 의존성을 추가합니다.
implementation 'org.glassfish.jersey.media:jersey-media-multipart:2.30'
-
파일 업로드 API 작성하기
파일 업로드를 처리하기 위해 먼저 파일 업로드 API를 작성해야 합니다. 다음은 파일 업로드를 처리하는 예제입니다.
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
@Path("/upload")
public class FileUploadResource {
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream fileInputStream,
@FormDataParam("file") FormDataContentDisposition fileDisposition) {
// 파일 업로드 처리 로직 작성
return Response.status(200).build();
}
}
-
파일 업로드 테스트하기
위에서 작성한 파일 업로드 API를 테스트하기 위해 클라이언트를 작성합니다. 다음은 Java에서 파일을 업로드하는 코드의 예입니다.
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.glassfish.jersey.media.multipart.file.FileDataBodyPart;
public class FileUploadClient {
public static void main(String[] args) {
Client client = ClientBuilder.newClient();
FileDataBodyPart filePart = new FileDataBodyPart("file", new File("/path/to/file"));
FormDataMultiPart formDataMultiPart = new FormDataMultiPart();
formDataMultiPart.bodyPart(filePart);
Response response = client.target("http://localhost:8080/upload")
.request(MediaType.APPLICATION_JSON)
.post(Entity.entity(formDataMultiPart, MediaType.MULTIPART_FORM_DATA));
System.out.println("Response code: " + response.getStatus());
}
}
위 코드에서 /path/to/file
은 업로드 할 파일의 경로로 변경해야 합니다. 또한, 업로드를 수행할 URL을 적절히 수정해야 합니다.
-
파일 업로드 실행하기
위에서 작성한 파일 업로드 API를 실행하기 위해 서버를 실행해야 합니다. 서버는 Java EE 서버이거나, Tomcat과 같은 웹 애플리케이션 서버를 사용할 수 있습니다.
서버가 실행 중이라면 FileUploadResource.java
파일이 있는 패키지 경로를 웹 API의 주소에 추가하여 파일 업로드를 수행할 수 있습니다.
예를 들어, FileUploadResource.java
파일의 패키지 경로가 com.example.api
라면 파일 업로드 주소는 http://localhost:8080/api/upload
가 됩니다.
이제 Java Jersey를 사용하여 파일 업로드를 간편하게 처리할 수 있습니다. 다양한 프로젝트에서 파일 업로드를 구현하고자 할 때 참고하여 사용해보세요!