Java Jersey를 사용하여 RESTful 웹 서비스를 개발할 때, XML 형식의 응답을 처리하는 방법이 필요할 수 있습니다. Jersey는 기본적으로 JSON 형식을 지원하지만, XML 형식을 처리하기 위해서는 몇 가지 추가 작업이 필요합니다.
먼저, Maven 또는 Gradle을 사용하여 pom.xml 또는 build.gradle 파일에서 다음 종속성을 추가해야 합니다.
Maven:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-xml</artifactId>
<version>2.31</version>
</dependency>
Gradle:
implementation 'org.glassfish.jersey.media:jersey-media-xml:2.31'
이제 Java 코드에서 XML 응답을 생성하기 위해 @Produces(MediaType.APPLICATION_XML)
어노테이션을 사용하여 메서드 또는 리소스 클래스에 적용해야 합니다. 이렇게하면 해당 메서드가 XML 형식의 응답을 생성한다는 것을 나타내게 됩니다.
예를 들어, 다음은 XML 형식의 응답을 생성하는 간단한 예제입니다.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("example")
public class ExampleResource {
@GET
@Path("xml")
@Produces(MediaType.APPLICATION_XML)
public ExampleModel getXmlResponse() {
ExampleModel model = new ExampleModel();
model.setName("John Doe");
model.setAge(30);
return model;
}
}
위의 예제에서 ExampleModel
은 XML 요소로 변환될 자바 클래스입니다. @Produces(MediaType.APPLICATION_XML)
어노테이션을 통해 응답 형식이 XML임을 설정하였습니다.
XML을 생성하기 위해 ExampleModel
클래스는 JAXB (Java Architecture for XML Binding) 주석을 사용하여 XML 요소로 매핑되어야 합니다. 예를 들어, ExampleModel
클래스는 다음과 같을 수 있습니다.
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class ExampleModel {
private String name;
private int age;
// Getters and setters
}
@XmlRootElement
어노테이션은 해당 클래스가 XML Root 엘리먼트임을 나타내며, JAXB로부터 필요한 XML 변환을 가능하게 합니다.
이제 위의 예제를 실행하고 /example/xml
경로로 GET 요청을 보내면 XML 형식의 응답을 받을 수 있습니다.
이와 같은 방법으로 Java Jersey에서 XML 응답을 처리할 수 있습니다.