[java] Apache CXF의 엔드포인트 구성

Apache CXF는 SOAP 및 RESTful 웹 서비스를 구현하고 통합할 수 있는 오픈 소스 웹 서비스 프레임워크입니다. 이 프레임워크를 사용하면 웹 서비스에 대한 클라이언트 및 서버를 쉽게 구현할 수 있습니다. 이번에는 Apache CXF에서 서버 측 엔드포인트를 구성하는 방법에 대해 살펴보겠습니다.

서비스 인터페이스 정의

먼저, 서비스를 정의하기 위한 인터페이스를 작성해야 합니다. 이를테면 다음과 같이 정의할 수 있습니다:

public interface UserService {
    String getUserInfo(String userId);
}

서비스 구현

다음으로는 서비스 인터페이스를 구현해야 합니다. 예를 들어 UserServiceImpl 클래스를 작성하여 getUserInfo 메서드를 구현할 수 있습니다:

public class UserServiceImpl implements UserService {
    public String getUserInfo(String userId) {
        // 사용자 정보를 가져와 반환하는 코드
    }
}

엔드포인트 구성

서비스를 구현한 후에는 해당 서비스에 대한 엔드포인트를 구성해야 합니다. 이를 위해 Spring Framework를 사용하여 CXF 서블릿을 구성할 수 있습니다. web.xml 파일에 다음과 유사한 내용을 추가합니다:

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    <init-param>
        <param-name>config-location</param-name>
        <param-value>WEB-INF/cxf-beans.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

CXF Bean 구성

이제 CXF Bean을 구성하는 파일(cxf-beans.xml)을 작성해야 합니다. 이 파일은 CXF 서비스 및 엔드포인트를 정의합니다. 다음은 간단한 구성 예제입니다:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://cxf.apache.org/jaxws
       http://cxf.apache.org/schemas/jaxws.xsd">

    <jaxws:endpoint id="userService" implementor="com.example.UserServiceImpl" address="/UserServiceImpl" />
</beans>

위 예제에서 implementor 속성은 서비스 구현 클래스를 지정하고, address 속성은 엔드포인트의 주소를 정의합니다.

이제 모든 설정이 완료되었습니다. 서버를 시작하고 해당 엔드포인트로 SOAP 또는 RESTful 요청을 보낼 수 있게 됩니다.

Apache CXF의 엔드포인트 구성에 대한 간략한 안내였습니다. 자세한 내용은 Apache CXF 공식 문서를 참고하시기 바랍니다.