[java] Java Apache Axis와 웹 서비스

웹 서비스는 다양한 플랫폼 간에 데이터를 교환하는 데 사용되는 기술이다. Java에서는 Apache Axis라는 라이브러리를 사용하여 웹 서비스를 구현할 수 있다.

Apache Axis는 SOAP(Simple Object Access Protocol) 프로토콜을 사용하여 클라이언트와 서버 간에 XML 기반의 메시지를 교환하는 웹 서비스를 개발하기 위한 오픈 소스 프레임워크이다.

Apache Axis 설치

  1. Apache Axis 공식 웹 사이트에서 최신 버전의 Apache Axis 라이브러리를 다운로드한다.
  2. 다운로드한 라이브러리를 Java 개발 환경의 클래스 경로에 추가한다.

Apache Axis로 웹 서비스 생성

Apache Axis를 사용하여 웹 서비스를 생성하는 방법은 다음과 같다.

  1. Java에서 웹 서비스를 구현할 클래스를 작성한다.
     package com.example;
    
     public class MyWebService {
         public String sayHello(String name) {
             return "Hello, " + name + "!";
         }
     }
    
  2. 웹 서비스를 노출하기 위한 웹 서비스 서버 클래스를 작성한다.
     package com.example;
    
     import org.apache.axis2.AxisFault;
     import org.apache.axis2.context.ConfigurationContext;
     import org.apache.axis2.context.ConfigurationContextFactory;
     import org.apache.axis2.description.AxisService;
     import org.apache.axis2.engine.AxisConfiguration;
     import org.apache.axis2.transport.http.AxisServlet;
    
     import javax.servlet.ServletException;
     import javax.servlet.http.HttpServletRequest;
     import javax.servlet.http.HttpServletResponse;
     import java.io.IOException;
    
     public class MyWebServiceServer extends AxisServlet {
            
         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
             super.doPost(req, resp);
         }
    
         @Override
         public void init() throws ServletException {
             super.init();
             try {
                 ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null);
                 AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
                 AxisService service = AxisService.createService(MyWebService.class.getName(), axisConfiguration);
                 axisConfiguration.addService(service);
             } catch (AxisFault axisFault) {
                 axisFault.printStackTrace();
             }
         }
     }
    
  3. 웹 서비스를 배포하기 위한 웹 애플리케이션 디렉토리를 생성하고, WEB-INF 디렉토리 아래에 web.xml 파일을 작성한다.
     <?xml version="1.0" encoding="UTF-8"?>
     <web-app xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
              version="2.5">
    
         <display-name>My Web Service</display-name>
    
         <servlet>
             <servlet-name>axisServlet</servlet-name>
             <servlet-class>com.example.MyWebServiceServer</servlet-class>
         </servlet>
    
         <servlet-mapping>
             <servlet-name>axisServlet</servlet-name>
             <url-pattern>/services/*</url-pattern>
         </servlet-mapping>
    
     </web-app>
    
  4. 웹 서비스를 배포할 웹 애플리케이션을 Java servlet 컨테이너에 배포한다.

웹 서비스 접근

Apache Axis를 사용하여 생성한 웹 서비스에 접근하기 위해서는 다음과 같은 방법을 사용할 수 있다.

  1. SOAP 클라이언트 라이브러리를 사용하여 웹 서비스에 요청을 전송한다.
  2. 웹 브라우저를 통해 웹 서비스 WSDL(Web Services Description Language)을 열고, 원하는 메소드를 실행한다.
  3. 테스트 도구인 SOAPUI를 사용하여 웹 서비스에 요청을 전송한다.

Apache Axis를 사용하여 Java에서 웹 서비스를 구현하고 접근하는 방법에 대해 알아보았다. 웹 서비스는 다른 플랫폼 간의 연결을 용이하게 해주는 강력한 기술이므로, 개발자는 웹 서비스의 개념과 구현 방법에 익숙해지는 것이 중요하다.

참고 문서: Apache Axis 공식 웹 사이트