[java] Java Apache Axis와 웹 서비스
웹 서비스는 다양한 플랫폼 간에 데이터를 교환하는 데 사용되는 기술이다. Java에서는 Apache Axis라는 라이브러리를 사용하여 웹 서비스를 구현할 수 있다.
Apache Axis는 SOAP(Simple Object Access Protocol) 프로토콜을 사용하여 클라이언트와 서버 간에 XML 기반의 메시지를 교환하는 웹 서비스를 개발하기 위한 오픈 소스 프레임워크이다.
Apache Axis 설치
- Apache Axis 공식 웹 사이트에서 최신 버전의 Apache Axis 라이브러리를 다운로드한다.
- 다운로드한 라이브러리를 Java 개발 환경의 클래스 경로에 추가한다.
Apache Axis로 웹 서비스 생성
Apache Axis를 사용하여 웹 서비스를 생성하는 방법은 다음과 같다.
- Java에서 웹 서비스를 구현할 클래스를 작성한다.
package com.example; public class MyWebService { public String sayHello(String name) { return "Hello, " + name + "!"; } }
- 웹 서비스를 노출하기 위한 웹 서비스 서버 클래스를 작성한다.
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(); } } }
- 웹 서비스를 배포하기 위한 웹 애플리케이션 디렉토리를 생성하고,
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>
- 웹 서비스를 배포할 웹 애플리케이션을 Java servlet 컨테이너에 배포한다.
웹 서비스 접근
Apache Axis를 사용하여 생성한 웹 서비스에 접근하기 위해서는 다음과 같은 방법을 사용할 수 있다.
- SOAP 클라이언트 라이브러리를 사용하여 웹 서비스에 요청을 전송한다.
- 웹 브라우저를 통해 웹 서비스 WSDL(Web Services Description Language)을 열고, 원하는 메소드를 실행한다.
- 테스트 도구인 SOAPUI를 사용하여 웹 서비스에 요청을 전송한다.
Apache Axis를 사용하여 Java에서 웹 서비스를 구현하고 접근하는 방법에 대해 알아보았다. 웹 서비스는 다른 플랫폼 간의 연결을 용이하게 해주는 강력한 기술이므로, 개발자는 웹 서비스의 개념과 구현 방법에 익숙해지는 것이 중요하다.
참고 문서: Apache Axis 공식 웹 사이트