Eclipse로 WebService 예제를 함 해봅시다.

2008. 5. 14. 17:54Java/Spring Framework

이클립스에는 제공하는 웹서비스에 대해서 알아보겠습니다.

상세 설명 영문으로 보고 싶은분은 클릭

젠장 그림두 없구 맘에 안드네~ 한글로 읽고 싶다 클릭

새로운 프로젝트를 만듭니다.
이전과 같이 Dynamic Web Project 를 선택합니다.
프로젝트 이름은 본인 맘대루 하세요~

프로젝트가 만들어지면 Converter.java 파일을 생성합시다.
섭씨, 화씨 온도 변환 프로그램입니다. 아주 간단하죠. 이러면 일단 웹서비스를 만들 준비가 끝난 것입니다.

package wtp;
public class Converter
{
  public float celsiusToFarenheit ( float celsius )
  {
    return (celsius * 9 / 5) + 32;
  }

  public float farenheitToCelsius ( float farenheit )
  {
    return (farenheit - 32) * 5 / 9;
  }
}

이제 웹서비스 서비스를 만드는 작업을 해보겠습니다.
웹서비스의 프로바이더와 클라이언트를 동시에 만들게 됩니다.
Web Service을 선택합니다.

wtp.Converter 서비스 구현체를 선택합니다.
그리고 아래에 눈금게이지를 Test client까지 올립니다.
그리고 아래에 Monitor the Web service 항목을 체크합니다.
Finish 버튼을 클릭하면 1분 정도의 작업이 진행될 것입니다.

관련된 프로젝트가 3개가 더 생겼습니다. 웹서비스를 지원하는 Servers, simplews client 프로젝트 그리고 JSR-109 Web Services 라는 프로젝트가 생성됩니다. 톰캣이 기동되고 서비스를 테스트할 수 있는 클라이언트 페이지가 에디터 영역에 뜹니다.

celsiusToFarenheit(float)를 클릭해서 값을 넣어 테스트해봅니다.
36.5 를 입력하면 화씨온도가 Result영역에 보이게 됩니다.

하단의 뷰에 TCP/IP Monitor 가 뜹니다.
보는 옵션을 Byte에서 XML로 바꿔주면 조금 더 가독성이 높일 수 있습니다.
왼쪽이 Envelope이고 오른쪽이 응답된 서비스 데이터입니다.

web.xml 파일만 변경이 되었고, 나머지 디렉토리와 파일들은 새롭게 생성되었습니다.
파일 확장자의 변화를 보면 *.wsdd, *.jar, *.wsdl 이렇게 생성이 되었습니다.
디렉토리의 변경도 볼 필요가 있는데, WebContent/WEB-INF/ 아래 생긴 것과 WebContent 으로 나눠 볼 수 있습니다.
WebContent/ 디렉토리는 컨텍스트 루트이고, WebContent/WEB-INF/ 디렉토리는 브라우저를 통해서 접근할 수 없는 서버 내부적 디렉토리입니다.
 결국 WebContent/wsdl/ 디렉토리가 외부로 공개되는 자원이라고 생각할 수 있습니다. 파일이 하나 있는데, 이름이 자바파일 이름과 같고, 확장자가 wsdl 이네요.

WEB-INF/lib 디렉토리에 추가된 jar 파일을 살펴보겠습니다.
axis.jar : 웹서비스용 컴포넌트입니다.
http://axis.apache.org/
commons-discovery-0.2.jar : 서비스 발견 컴포넌트입니다.
http://commons.apache.org/discovery/
commons-logging.jar : 로깅에 관련된 컴포넌트.
http://commons.apache.org/logging/
jaxrpc.jar : 자바 xml rpc 컴포넌트
https://jax-rpc.dev.java.net/
saaj.jar : SOAP with Attachments API for Java (SAAJ)
http://java.sun.com/webservices/saaj/docs.html
wsdl4j-1.5.1.jar : Web Services Description Language for Java
http://sourceforge.net/projects/wsdl4j

이러한 컴포넌트들이 자동으로 붙게 됩니다.