[java] Apache CXF의 코드-first 웹 서비스 개발

Apache CXF는 웹 서비스를 빌드하고 배포하는 데 사용되는 오픈 소스 프레임워크입니다. 이 프레임워크를 사용하면 더 쉽고 효율적으로 웹 서비스를 개발할 수 있습니다. 이번에는 Apache CXF를 사용하여 코드-first 방식으로 웹 서비스를 개발하는 방법에 대해 알아보겠습니다.

1. Apache CXF 설치

먼저 Apache CXF를 설치해야 합니다. Apache CXF는 Maven이나 다른 의존성 관리 도구를 사용하여 쉽게 설치할 수 있습니다. 다음은 Maven을 사용하여 Apache CXF를 의존성으로 추가하는 예제입니다.

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>{version}</version>
</dependency>

의존성을 추가한 후 Maven 프로젝트를 다시 빌드하면 Apache CXF가 프로젝트에 추가됩니다.

2. 코드-first 웹 서비스 작성

2.1 인터페이스 정의

먼저, 웹 서비스의 인터페이스를 정의해야 합니다. 이를 위해 Java 인터페이스를 작성하고 @WebService@WebMethod 애노테이션을 사용하여 메서드를 웹 서비스 연산으로 표시해야 합니다.

import javax.jws.WebService;

@WebService
public interface HelloWorld {
    String sayHello(String name);
}

2.2 구현 클래스 작성

다음으로, 인터페이스를 구현하는 클래스를 작성해야 합니다. 해당 클래스는 인터페이스를 구현하고 @Service 애노테이션을 사용하여 해당 클래스가 웹 서비스 구현임을 표시해야 합니다.

import javax.jws.WebService;

@WebService(endpointInterface = "com.example.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }
}

3. 웹 서비스 빌드 및 배포

3.1 서비스 클래스 작성

웹 서비스 엔드포인트를 시작하기 위해 서비스 클래스를 작성해야 합니다.

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class HelloWorldServer {
    public static void main(String args[]) {
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        factory.setServiceClass(HelloWorld.class);
        factory.setAddress("http://localhost:8080/helloWorld");
        factory.create();
    }
}

3.2 서버 실행

서버를 실행하고 웹 서비스에 대한 WSDL(웹 서비스 설명 언어)을 확인할 수 있습니다. 브라우저에서 http://localhost:8080/helloWorld?wsdl을 열어 WSDL을 확인할 수 있습니다.

이제 Apache CXF를 사용하여 코드-first 방식으로 간단한 웹 서비스를 개발하는 방법에 대해 알아봤습니다. Apache CXF를 통해 코드-first 웹 서비스를 개발하면 수동으로 WSDL을 작성할 필요가 없으며, 빠르고 효율적으로 웹 서비스를 구축할 수 있습니다.

더 많은 세부 내용은 Apache CXF 공식 문서에서 찾아볼 수 있습니다.