[java] Apache CXF의 스프링 부트 통합

Apache CXF는 웹 서비스 개발을 위한 오픈 소스 프레임워크이며, 스프링 부트는 스프링 기반의 애플리케이션을 쉽게 만들기 위한 도구입니다. 이번 포스트에서는 Apache CXF를 스프링 부트와 통합하는 방법에 대해 알아보겠습니다.

1. Apache CXF 의존성 추가

먼저, pom.xml 파일에 Apache CXF 의존성을 추가해야 합니다.

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
    <version>3.4.5</version>
</dependency>

위의 설정은 Apache CXF와 스프링 부트를 통합하기 위한 JAX-WS 스타터를 추가하는 것입니다.

2. 웹 서비스 인터페이스 정의

다음으로, 웹 서비스의 인터페이스를 정의해야 합니다. 예를 들어, HelloWorldService라는 간단한 웹 서비스를 만든다고 가정해보겠습니다.

package com.example;

import javax.jws.WebMethod;
import javax.jws.WebService;

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

3. 웹 서비스 구현

이제 위에서 정의한 웹 서비스 인터페이스를 구현해야 합니다.

package com.example;

import javax.jws.WebService;

@WebService(endpointInterface = "com.example.HelloWorldService")
public class HelloWorldServiceImpl implements HelloWorldService {
    @Override
    public String sayHello(String name) {
        return "Hello, " + name;
    }
}

4. 스프링 부트 애플리케이션 클래스 작성

마지막으로, 스프링 부트 애플리케이션 클래스를 작성하여 웹 서비스를 설정하고 시작할 수 있습니다.

package com.example;

import org.apache.cxf.Bus;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public HelloWorldService helloWorldService() {
        return new HelloWorldServiceImpl();
    }

    @Bean
    public Endpoint endpoint(Bus bus, HelloWorldService helloWorldService) {
        EndpointImpl endpoint = new EndpointImpl(bus, helloWorldService);
        endpoint.publish("/hello");
        return endpoint;
    }
}

결론

Apache CXF를 스프링 부트와 통합하여 간단한 웹 서비스를 만드는 방법에 대해 알아보았습니다. 이를 통해 복잡한 웹 서비스를 구축하는 데 도움이 될 것입니다.

더 많은 정보를 원하신다면 Apache CXF 공식 홈페이지를 참고하시기 바랍니다.

References: