친구가 학교에서 웹서비스를 배운다고 합니다.
저도 그 수업을 들었죠. 그 수업에서 웹서비스를 만드는 것은 정말 많은 노력이 들어가서 만드는 방법이였습니다. 필요한 라이브러리를 다 각각 복사하고, 컴파일도 직접하며, 톰캣도 이상한 웹서비스 톰캣을 사용하더라구요.
그렇게 하게되면 완전 원시적인 방법으로 배우게 되므로 많은 도움이 되긴 됐습니다만, 이렇게 손쉽게 만드는 방법도 알아두면 좋죠 ^^

이건 SOAP프로토콜을 이용한 웹서비스를 만들겁니다. 최근 RESTful을 이용한 어쩌구 하는데 이건 좀 더 공부가 필요하겠네요.

우선 넷빈즈를 실행합니다. 넷빈즈는 여기서 다운로드할 수 있습니다.
http://download.netbeans.org/netbeans/6.1/final/
왠만하면 다되는걸로 받으세요-_-; 다되면 좋잖아요 ^^

실행한 뒤 웹애플리케이션을 만듭니다.
New Project -> Web -> Web Application
ProjectName : HelloWebApp
server: GlassFish v2
(톰캣으로 해도 됩니다만, 톰캣은 테스트를 할 수 없더라구요. 예전에 수동으로 웹서비를 만들었을 때 테스트가 너무 힘들어서 삽질했던 기억을 생각하면...-_-; GlassFish도 참 대단한 was같네요)
Finish로 생성.

웹서비스를 만들기 위해서는 프로젝트이름의 마우스오른쪽버튼을 누르면 New -> WebService가 있습니다.
Web Service Name은 Hello라고 하고, package는 com.mudchobo.hellows라고 합시다.
Finish를 누르면 Design모드로 뭔가 뜹니다.
여기서 우리가 Operation을 하나 만들어봅시다.
Add Operation을 클릭합니다.
Name은 메소드명입니다. sayHello라고 합시다.
Return Type은 말그대로 리턴형입니다. 걍 냅둡시다.
parameter는 1개추가해서, Name을 name이라고 하고, 형은 java.lang.String으로 합시다.
이제 Source보기로 바꿉니다.

소스를 보면 WebService를 어노테이션으로 만들 수 있는 것을 볼 수 있습니다.
이건 정말 환상적이네요. 기존에 WSDP인가? 이걸로 할 때에는 미친듯이 삽질해도 웹서비스를 만드려면 엄청힘들었는데 이건뭐 그냥 어노테이션으로 끝내버리네요 ^^
[code]
@WebService()
public class Hello {

    /**
     * Web service operation
     */
    @WebMethod(operationName = "sayHello")
    public String sayHello(@WebParam(name = "name")
    String name) {
        //TODO write your implementation code here:
        return "Shit! " + name + " 바보!";
    }

}
[/code]
위와 같이 name이라는 파라메터를 넣으면 return은 Shit! 이름 바보! 라고 보내줍시다.
이제 한번 run을 해봅시다.
GlassFish가 시작되면서 브라우저로 웹페이지가 뜹니다.
Hello World!라고 뜨는군요. 이제 WebService를 테스트해봅시다.

WebService -> Hello에 오른쪽버튼 클릭 후 Test Web Service를 클릭합니다.


한글은 깨지는군요. 어쨌든 WSDL파일도 클릭하면 볼 수 있습니다.
테스트하면 잘 되는군요.

다음시간에는 클라이언트를 통해서 저 웹서비스를 호출해보도록 하겠습니다.
클라이언트 언어는 쉽게 WebService를 호출할 수 있는 Flex로 해보도록 합시다-_-;
클라이언트는 여기를 클릭하세요.
http://mudchobo.tomeii.com/tt/329
 
Posted by 머드초보
,