2011-09-15 9 views
0

SOAP를 통해 Java 기반 시스템과 상호 작용해야하는 .Net 웹 응용 프로그램이 있습니다.웹 서비스/WCF 초보자 : Java 기반 SOAP 웹 서비스에 대한 WCF 프록시 클라이언트/개체 만들기

일부 기본 WCF 이외의 웹 서비스는 사용하지 않았으며 이에 대한 지침을 알려 주시면 감사하겠습니다.

기본적으로 SOAP 웹 서비스에 연결하기 위해 WCF 프록시 클라이언트를 만드는 방법을 고려하고있었습니다. 이 시스템은 SOAP 인터페이스를 제공하는 타사 Java 기반 시스템입니다.

제공된 샘플 코드는 wsdl을 사용하여 프록시를 생성했지만 WCF 이전에는 그렇지 않습니다.

UsernameToken aToken = new UsernameToken("root", "root", PasswordOption.SendPlainText); 

MetadataService.MetadataService aMetadataService = new MetadataService.MetadataService(); 

SoapContext aContext = aMetadataService.RequestSoapContext; 

aContext.Security.Tokens.Add(aToken); 

String aXmp = aMetadataService.s_getXmpFromRecordID(wAssetId.Text); 

의견이 있으십니까? 감사합니다.

답변

2

WSDL은 웹 서비스 용 클라이언트 프록시를 생성하는 데 필요한 모든 것입니다. 그리고 아니오, 이것은 WCF 시대 이전이 아닙니다. WSDL은이를 위해 특별히 설계되었습니다.

가장 간단한 해결책은 svcutil을 사용하여 코드를 만드는 것입니다.

웹 서비스의 WSDL을 사용하여 svcutil을 호출하면 클라이언트 코드가 구성과 함께 반환됩니다.

그런 다음 클라이언트 인스턴스의 메소드로 웹 서비스의 작업을 호출합니다. 그것만큼 간단합니다!

예를 들어, 다음과 같은 기본 웹 서비스를 고려해보십시오. http://www.startvbdotnet.com/web/sample2.asmx (기본 수학은 google-ing에서 찾은 웹 서비스로 표시됩니다).

svcutil http://www.startvbdotnet.com/web/sample2.asmx?wsdl 

이 명령은 Sample.csoutput.config 파일 (클라이언트의 코드와 구성)를 생성합니다

은 내가 지금처럼는 svcutil 사용하는 것이 이것에 대한 클라이언트를 생성합니다.

당신은 (System.ServiceModelSystem.Runtime.Serialization 같은 필요한 어셈블리와 함께) 프로젝트에 추가 할 지금 당신은이 같은 코드를 사용하여 웹 서비스를 호출 할 수 있습니다

using (SampleSoapClient proxy = new SampleSoapClient()) 
{ 
    Console.WriteLine(proxy.Add(6, 2)); 
    Console.WriteLine(proxy.Substract(6, 2)); 
    Console.WriteLine(proxy.Divide(6, 2)); 
    Console.WriteLine(proxy.Multiply(6, 2)); 
} 

WCF는 일이 쉽습니다. 서비스 클래스에 적절한 구성이나 속성을 사용하여 보안을 추가하는 것도 간단합니다.

관련 문제