Define the Service
다음과 같이 int, String그리고 새로 생성한 MyObject를 Echo하는 서비스를 생성한다.(MyObject 코드는 별도의 클래스로 작성했다.)
package learningjava.service;
import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint;
@WebService public class Echo { @WebMethod public int echoInt( int value ) { return value; }
@WebMethod public String echoString( String value ) { return value; }
@WebMethod public MyObject echoMyObject( MyObject value ) { return value; }
public static void main( String[] args ) { Endpoint.publish( "http://localhost:8080/echo", new Echo() ); } }
|
package learningjava.service;
public class MyObject { int intValue; String stringValue;
public MyObject() { }
public MyObject(int i, String s) { this.intValue = i; this.stringValue = s; }
public int getIntValue() { return intValue; }
public void setIntValue(int intValue) { this.intValue = intValue; }
public String getStringValue() { return stringValue; }
public void setStringValue(String stringValue) { this.stringValue = stringValue; }
public String toString() { return String.format("MyObject: %i, %s", intValue, stringValue); } } |
다음과 같이 웹 서비스를 위하여 컴파일하고 웹서비스를 생성하기위하여 위의 두개의 클래스를 컴파일하고 컴파일된 Echo.class를 실행하여 서비스를 시작(publish)한다.
그러면 다음과 같이 브라우저를 통해서 웹서비스 정보를 얻을수 있으며, WSDL 링크를 클릭하면 웹 서비스 디스크립션 문서를 열람할 수 있다.
Using the Service
이젠 웹 서비스에서 제공되는 WSDL 참조를 통해 클라이언트 소스를 다운받고(-p옵션을 통해 생성되는 소스의 패키지를 지정할수 있으며, -keep 옵션을 통해 소스파일도 함께 받을(다운로드)수 있다.)
다음과 같이 해당 클래스와 소스를 확인할 수 있다. 이로서 클라이언트(이 웹서비스를 사용하는 프로그램)에서 사용할 수 있는 또는 필요한 클래스 들이 확보되었다.
이제는 테스트(클라이언트)코드 생성해서 (필요한 클래스는 확보되었으므로) 서비스를 이요하면 되겠다. 다음과 같이 간단한 클라이언트 코드를 생성하여 컴파일한다.
package learningjava.client;
import learningjava.client.impl.*; import learningjava.client.impl.Echo; import learningjava.client.impl.MyObject;
public class EchoClient { public static void main( String [] args ) throws java.rmi.RemoteException { Echo service = new EchoService().getEchoPort(); int i = service.echoInt( 42 ); System.out.println( i ); String s = service.echoString( "Hello!" ); System.out.println( s ); MyObject myObject = new MyObject(); myObject.setIntValue( 42 ); myObject.setStringValue( "Foo!" ); MyObject myObj = service.echoMyObject( myObject ); System.out.println( myObj.getStringValue() );
new learningjava.service.Echo(); } }
|
다음은 클라이언트 코드를 컴파일 하고 실행시킨 결과이다.
'Java > Java for the Web' 카테고리의 다른 글
GET과 POST 예제프로그램, (URL클래스를 이용한 웹컨텐츠 StreamData 읽기) (0) | 2013.11.15 |
---|---|
Filtering the Servlet Request & Response (0) | 2013.02.12 |
A Simple Filter (0) | 2013.02.12 |
Cookie정보 보기 (0) | 2013.02.12 |
Session정보 보기 (0) | 2013.02.12 |