Apache CXF는 자바 기반의 오픈 소스 웹 서비스 프레임워크로, SOAP, REST 및 XML/JSON과 같은 다양한 프로토콜과 데이터 형식을 지원합니다. 이번 포스트에서는 Java에서 Apache CXF를 사용하여 XML 및 JSON 데이터를 처리하는 방법에 대해 알아보겠습니다.
1. Apache CXF 설정
Apache CXF를 사용하기 위해서는 먼저 Maven 또는 Gradle과 같은 의존성 관리 도구를 사용하여 cxf-core
및 cxf-rt-frontend-jaxrs
와 같은 필요한 라이브러리를 프로젝트에 추가해야 합니다. 이는 해당 도구의 설정 파일에 의존성을 추가하여 수행할 수 있습니다.
Maven의 경우, pom.xml
파일에 아래의 의존성을 추가합니다:
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.4.4</version>
</dependency>
</dependencies>
Gradle의 경우, build.gradle
파일에 아래의 의존성을 추가합니다:
dependencies {
implementation 'org.apache.cxf:cxf-core:3.4.4'
implementation 'org.apache.cxf:cxf-rt-frontend-jaxrs:3.4.4'
}
2. XML 데이터 처리
XML을 처리하기 위해서는 CXF에서 제공하는 JAX-RS 서비스를 활용할 수 있습니다. 먼저, XML 데이터를 처리할 Service
클래스를 작성해보겠습니다.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/xml")
public class XmlService {
@GET
@Produces(MediaType.APPLICATION_XML)
public DataObject getData() {
// XML 데이터를 생성하거나 가져오는 로직
DataObject dataObject = new DataObject();
dataObject.setName("John Doe");
dataObject.setAge(30);
return dataObject;
}
}
위의 코드에서는 /xml
경로에 대한 GET 요청을 처리하며, @Produces(MediaType.APPLICATION_XML)
어노테이션을 통해 XML 형식의 데이터를 반환합니다. DataObject
는 XML로 직렬화될 수있는 POJO(Plain Old Java Object)입니다.
서비스를 시작하고 http://localhost:8080/xml
에 요청을 보내면, XML로 직렬화된 데이터를 응답으로 받을 수 있습니다.
3. JSON 데이터 처리
JSON 데이터를 처리하기 위해서도 JAX-RS 서비스를 이용할 수 있습니다. 아래의 예시를 통해 JSON 데이터를 처리하는 Service
클래스를 작성해보겠습니다.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/json")
public class JsonService {
@GET
@Produces(MediaType.APPLICATION_JSON)
public DataObject getData() {
// JSON 데이터를 생성하거나 가져오는 로직
DataObject dataObject = new DataObject();
dataObject.setName("John Doe");
dataObject.setAge(30);
return dataObject;
}
}
위의 코드에서도 /json
경로에 대한 GET 요청을 처리하며, @Produces(MediaType.APPLICATION_JSON)
어노테이션을 통해 JSON 형식의 데이터를 반환합니다.
서비스를 실행하고 http://localhost:8080/json
에 요청을 보내면, JSON으로 직렬화된 데이터를 응답으로 받을 수 있습니다.
4. 결론
이번 포스트에서는 Java에서 Apache CXF를 사용하여 XML 및 JSON 데이터를 처리하는 방법에 대해 알아보았습니다. Apache CXF는 다양한 프로토콜과 데이터 형식을 지원하므로, 다양한 형태의 데이터를 처리하는 웹 서비스를 구축하는 데 유용한 도구입니다.
더 많은 정보를 원하시면 Apache CXF 공식 문서를 참조하세요.