Skip to content
neois edited this page Dec 3, 2019 · 2 revisions

.NET으로 생성한 Web Service를 Java의 Web Service Client를 생성해 호출하는 방법에 대해서 예제를 통해서 살펴보자.

.NET은 Web Service를 초기부터 지원하고 있으며 3.0에서는 WCF를 통해 좀더 SOA 모델에 가까운 서비스를 지원하고 있다.

Java에서는 기존에는 JAX-RPC를 통해 지원하던 Web Service를 Java EE 5 에서는 JAX-WS (Java API for XML Web Services)를 통해 지원하고 있다. 

여기서는 .NET의 Web Service와 Apache의 Web Service 프로젝트인 AXIS를 사용하여 테스트하도록 하겠다.

 

1. visual studio를 이용해 .NET Web Service를 생성하도록 한다.

New Web Site를 추가한 후 ASP.NET Web Service를 선택한다.

Service.asmx 파일을 열어 아래와 같이 간단한 Web Method를 추가한다.

 

[WebMethod]
public string CallService (string name)
{
    return "result name : " + name;
}

 

2. eclipse WTP(Web Tools Platform)을 이용해 Web Service client를 개발하도록 하자.

(eclipse WTP를 설정하는 방법은 별도의 문서를 참고하도록 한다.)

eclipse에서 Java 프로젝트를 생성한 후 프로젝트 속성의 Java Build Path 에서 AXIS 관련 Lib를 설정해 준다.

 

프로젝트에서 New를 선택한 후 Web Services의 Web Service Client를 생성한다.

WSDL값은 1에서 생성한 .NET Web Service의 WSDL을 입력한다.

(예, http://localhost:3961/SampleService/Service.asmx?wsdl )

생성을 하게 되면 자동으로 Web Service Client가 생성이 된다.

 

3. 생성된 Web Service Client를 사용하기 Java Application을 작성해 보자.

아래와 같이 간단하게 작성해 테스트 해보면 되겠다.

public static void main(String[] args) throws Exception{
  ServiceSoapProxy proxy = new ServiceSoapProxy();
  System.out.println(proxy.callService("ryu"));

}

 

이 예제에서는 자동으로 생성된 파일을 이용하였으나 동적으로 Web Service를 호출해야 하는 경우에는 아래 첨부 파일 (ServiceProxy)을 사용하여 아래와 같이 호출하면 되겠다.

(단, input/output 파라미터는 모두 string으로 정의되었다고 가정한다.)

public static void main(String[] args) {

HashMap map = new HashMap();
map.put("name", "류대원 "); 
try {
   String ret = (String) ServiceProxy.CallService("http://localhost:3961/SampleService/Service.asmx", "http://tempuri.org/","CallService", map );
   System.out.println("Test1 : " + ret);
} catch (Exception e) {
   e.printStackTrace();
}

}

 

 

 

 

 

 

Clone this wiki locally