본문 바로가기
프로그래밍/C++

wsdl.exe 이용해서 웹서비스 Proxy 클래스 생성하기

by 건우아빠유리남편 2012. 5. 18.
반응형

웹서비스의 URL을 변경하기 위해 아래와 같은 정보가 필요...

웹서비스를 구독하는 클라이언트에서 옵션설정과 같은 인터페이스로 다시금 웹서비스를 이용하기 위해서는 프록시 클래스를 (같은 프록시 클래스 네임으로) 재생성 해주면 가능할 것으로 예상된다.

하지만 역시 재빌드는 필요하다는 점

 

아래는 프록시클래스 생성설명

김정현입니다.

웹서비스 Proxy 클래스 만드는 방법에 대해 간략히 설명 합니다.

wsdl.exe 응용 프로그램을 이용합니다.

해당 프로그램은 비쥬얼스튜디오 하위에 언어 아래에 위치합니다.

사용방법은 wsdl.exe /language:cpp /out:C:myProxyClass.cpp http://192.168.5.4/ICSService/DBManager.asmx

같이 사용합니다.

C# 같은 경우도 마찬가지 입니다.

 

아래는 참고할msdn 내용입니다.


서비스 프록시 만들기

SQL Server 2012

다른 버전

클라이언트와 서비스는 입력 출력 매개 변수를 XML 캡슐화하는 SOAP 메시지를 사용하여 통신할 있습니다.프록시 클래스는 매개 변수를 XML 요소에 매핑한 다음 네트워크를 통해 SOAP 메시지를 보냅니다.이와 같이 프록시 클래스 덕분에 SOAP 수준에서 서비스와 통신할 필요가 없으며 SOAP 프록시를 지원하는 임의의 개발 환경에서 서비스 메서드를 호출할 있습니다.

Microsoft .NET Framework 사용하여 개발 프로젝트에 프록시 클래스를 추가하는 방법에는 .NET Framework에서 WSDL 도구를 사용하는 방법과 Microsoft Visual Studio에서 참조를 추가하는 방법이 있습니다.다음 섹션에서는 가지 방법에 대해 자세히 설명합니다.

 

WSDL 도구를 사용하여 프록시 추가


.NET Framework SDK에는 .NET Framework 개발 환경에서 사용할 서비스 프록시를 생성할 있는 WSDL( 서비스 기술 언어) 도구(Wsdl.exe) 포함되어 있습니다. 서비스를 지원하는 언어(현재 C# Microsoft Visual Basic) 클라이언트 프록시를 생성하는 가장 일반적인 방법은 WSDL 도구를 사용하는 것입니다.

Wsdl.exe 사용하여 프록시 클래스를 프로젝트에 추가하려면

1. 명령 프롬프트에서 Wsdl.exe 사용하여 (최소한) URL 보고서 서버 서비스에 지정함으로써 프록시 클래스를 만듭니다.

예를 들어 다음 명령 프롬프트 문은 보고서 서버 서비스의 관리 끝점에 대한 URL 지정합니다.

복사

wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl

WSDL 도구에서는 프록시 생성을 위해 다수의 명령 프롬프트 인수를 사용합니다.위의 예에서는 C# 언어 서비스 끝점을 이상 사용하는 경우 이름 충돌 방지를 위해 프록시에 사용하도록 제안된 네임스페이스를 지정하고 ReportingService2010.cs라는 C# 파일을 생성합니다. 예에서 Visual Basic 지정한다면 이름이ReportingService2010.vb 프록시 파일을 생성하게 됩니다. 파일은 명령을 실행하는 위치인 디렉터리에 만들어집니다.

2. 프록시 클래스를 어셈블리 파일(확장명 .dll) 컴파일하고 클래스를 프로젝트에서 참조하거나 프로젝트 항목으로 추가합니다.

참고

프록시 클래스를 수동으로 프로젝트에 추가할 경우 System.Web.Services.dll 대한 참조를 추가해야 합니다.Visual Studio .NET에서 참조를 사용하여 프록시를 추가하는 경우에는 참조가 자동으로 만들어집니다.자세한 내용은 항목의 후반에 나오는 "Visual Studio에서 참조를 사용하여 프록시 추가" 참조하십시오.

3. 프록시 클래스를 프로젝트에 항목으로 추가하면 연결된 파일이 솔루션 탐색기에 나타납니다.

4. 서비스를 프로그래밍 방식으로 호출하려면 프록시 클래스의 인스턴스를 만듭니다.

다음 코드 예제는 프로젝트에서 ReportingService2010프록시 클래스의 인스턴스를 만들기 위한 구문을 보여 줍니다.

C#

VB

복사

ReportingService2010 service = new ReportingService2010();

 

전체 구문을 포함하여 Wsdl.exe 도구에 대한 자세한 내용은 .NET Framework SDK 설명서의 "WDSL 도구(Web Services Description Language Tool)" 참조하십시오. 서비스 프록시에 대한 자세한 내용은 .NET Framework SDK 설명서의 "XML 서비스 프록시 만들기(Creating an XML Web Service Proxy)" 참조하십시오.

Visual Studio에서 참조를 사용하여 프록시 추가


참조를 통해 프로젝트에서 서비스를 하나 이상 사용할 있습니다.Visual Studio에서는 사용자가 다음의 간단한 단계를 수행하여 서비스 참조를 프로젝트에 추가할 있습니다.

프로젝트에 참조를 추가하려면

1. 솔루션 탐색기에서 서비스가 사용될 프로젝트를 선택합니다.

2. 프로젝트 메뉴에서 참조 추가 클릭합니다.

참조 추가 대화 상자가 열립니다.

3. URL 필드에 보고서 서버 서비스에 대한 전체 경로를 입력합니다.

보고서 서버 서비스의 보고서 실행 끝점에 대한 간단한 URL 다음과 같습니다.

복사

http://<Server Name>/reportserver/reportexecution2005.asmx

URL에는 보고서 서버 서비스가 배포된 도메인, 서비스가 포함된 폴더의 이름 서비스에 대한 검색 파일의 이름이 포함됩니다.다양한 URL 요소에 대한 자세한 내용은 SOAP API 액세스 참조하십시오.

서비스에서 제공하는 메서드 속성에 대한 설명은 왼쪽의 브라우저 창에 나타납니다.

참고

보고서 서버 서비스와 연관된 항목에 대한 자세한 내용은 보고서 서버 서비스 메서드 참조하십시오.

4. 프로젝트에서 보고서 서버 서비스를 사용할 있고 보고서 서버에 액세스할 있는 충분한 권한이 있는지 확인합니다.

5. 보고서 서버 서비스에 프로그래밍 방식으로 액세스하기 위해 코드에 사용할 이름을 참조 이름 필드에 입력합니다.

6. 참조 추가 단추를 선택하여 서비스에 대한 응용 프로그램의 참조를 만듭니다.

참조가 솔루션 탐색기에서 활성 프로젝트에 대한 Web References 노드 아래에 참조 이름 필드에 지정한 이름으로 나타납니다.

7. 솔루션 탐색기에서 Web References 폴더를 확장하여 프로젝트의 항목에서 사용 가능한 참조 클래스에 대한 네임스페이스를 확인합니다.

프로젝트에 참조를 추가하면 연결된 파일이 솔루션 탐색기 Web References 폴더 내의 폴더에 표시됩니다.

참조를 추가한 다음 구문을 사용하여 프록시 클래스의 인스턴스를 만듭니다.

C#

VB

복사

myNamespace.myReferenceName.ReportExecutionService rs = newmyNamespace.myReferenceName.ReportExecutionService();

rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"

rs.Credentials = System.Net.CredentialCache.DefaultCredentials

 

using (Visual Basic 경우 Import) 지시문을 보고서 서버 서비스 참조에 추가할 수도 있습니다. 지시문을 사용할 경우에는 네임스페이스에서 형식을 정규화하지 않아도 됩니다.이렇게 하려면 다음 코드를 파일에 추가합니다.

C#

VB

복사

usingmyNamespace.myReferenceName;

참고 항목


개념

보고서 서버 서비스

기술 참조(SSRS)

관련 자료

서비스 및 .NET Framework 사용하여 응용 프로그램 작성

 


서비스 기술 언어 도구(Wsdl.exe)

.NET Framework 4

다른 버전

 

항목은 아직 평가되지 않았습니다.- 항목 평가

항목은 레거시 기술과 관련된 것입니다. 이제 XML Web services XML Web services 클라이언트는 다음을 사용하여 만들어야 합니다. Windows Communication Foundation .

서비스 기술 언어 도구는 XML Web services XML Web services 클라이언트에서 사용할 있는 코드를 WSDL 계약 파일, XSD 스키마 .discomap 검색 파일로부터 생성합니다.

참고:

WSDL.exe “@string” 같은 이름의 클래스를 생성할 있습니다. 이러한 이름은 C# 키워드를 구성하는 형식 이름을 허용하기 위해 ‘@’ 접두사를 사용하는 유효한 형식 이름입니다.

복사

 

wsdl [options] {URL | path}

설명


인수

설명

URL

WSDL 계약 파일(.wsdl), XSD 스키마 파일(.xsd) 또는 검색 문서(.disco) URL입니다. .discomap 검색 문서의 URL 지정할 없습니다.

경로

로컬 WSDL 계약 파일(.wsdl), XSD 스키마 파일(.xsd) 또는 검색 문서(.disco 또는 .discomap) 경로입니다.

참고:

Wsdl.exe 로컬 파일이 지정된 경우 네트워크에서 포함 가져오기를 검색하지 않습니다. 로컬 파일을 처리하는 동안 Wsdl.exe 사용하여 네트워크 리소스를 검색하려면 로컬 파일에 URL 전달합니다. 예를 들어, 다음 파일은 네트워크를 사용하여 필요한 리소스를 검색합니다. wsdl File:///E:/Customers/WSDLS/Accounts.wsdl /out:proxy.cs

 

옵션

설명

/appsettingurlkey:key

또는

/urlkey:key

코드를 생성할 URL 속성의 기본값을 읽는 사용할 구성 키를 지정합니다. /parameters옵션을 사용하는 경우 값은 <appSettingUrlKey> 요소이며 문자열을 포함합니다.

/appsettingbaseurl:baseurl

또는

/baseurl:baseurl

URL 부분을 계산할 사용할 기본 URL 지정합니다. 도구는 baseurl 인수의 상대 URL WSDL 문서의 URL 변환하여 URL 부분을 계산합니다. /appsettingurlkey옵션도 함께 지정해야 합니다. /parameters옵션을 사용하는 경우 값은 <appSettingBaseUrl> 요소이며 문자열을 포함합니다.

/d[omain]:domain

인증이 필요한 서버에 연결할 사용할 도메인 이름을 지정합니다. /parameters옵션을 사용하는 경우 값은 <domain> 요소이며 문자열을 포함합니다.

/l[anguage]:language

생성된 프록시 클래스에 사용할 언어를 지정합니다. 언어 인수로 CS(C#; default), VB(Visual Basic), JS(JScript) 또는 VJS(Visual J#) 지정할 있습니다. System.CodeDom.Compiler.CodeDomProvider 클래스 구현하는 클래스의 정규화된 이름을 지정할 수도 있습니다. /parameters 옵션을 사용하는 경우 값은 <language> 요소이며 문자열을 포함합니다.

/n[amespace]:namespace

생성된 프록시 또는 템플릿의 네임스페이스를 지정합니다. 기본 네임스페이스는 전역 네임스페이스입니다. /parameters 옵션을 사용하는 경우 값은 <namespace> 요소이며 문자열을 포함합니다. 요소는 매개 변수 파일에 있어야 합니다.

/nologo

Microsoft 시작 배너를 표시하지 않습니다. /parameters옵션을 사용하는 경우 값은 <nologo> 요소이며 true 또는 false 포함합니다.

/order

파티클 멤버에 대해 명시적인 순서 식별자를 생성합니다.

/o[ut]:filename 또는 directoryname

생성된 프록시 코드를 저장할 파일 또는 디렉터리를 지정합니다. 또한 파일을 만들 디렉터리를 지정할 수도 있습니다. 도구는 XML Web services 이름에서 기본 파일 이름을 파생시키며 생성된 데이터 집합을 서로 다른 파일에 저장합니다. /parameters옵션을 사용하는 경우 값은 <out> 요소이며 문자열을 포함합니다.

/parameters

지정된 XML 파일에서 명령줄 옵션을 읽습니다. Wsdl.exe 도구에 여러 옵션을 번에 전달하려면 옵션을 사용합니다. 약식 표현은 /par:입니다. 옵션 요소는 <wsdlParameters xmlns="http://microsoft.com/webReference/"> 요소 안에 포함됩니다. 자세한 내용은 설명 부분을 참조하십시오.

/parsableerrors

언어 컴파일러에 사용되는 오류 보고 형식과 비슷한 형식으로 오류를 표시합니다. /parameters 옵션을 사용하는 경우 값은 <parsableerrors> 요소이며 true 또는 false입니다.

/p[assword]:password

인증이 필요한 서버에 연결할 사용할 암호를 지정합니다. /parameters 옵션을 사용하는 경우 값은 <password> 요소이며 문자열을 포함합니다.

/protocol:protocol

구현할 프로토콜을 지정합니다. SOAP(기본값), HttpGet, HttpPost 또는 구성 파일에 지정된 사용자 지정 프로토콜을 지정할 있습니다. /parameters옵션을 사용하는 경우 값은 <protocol> 요소이며 문자열을 포함합니다.

/proxy:URL

HTTP 요청에 사용할 프록시 서버의 URL 지정합니다. 시스템 프록시 설정이 기본값으로 사용됩니다. /parameters 옵션을 사용하는 경우 값은 <proxy> 요소이며 문자열을 포함합니다.

/proxydomain:domain

또는

/pd:domain

인증이 필요한 프록시 서버에 연결할 사용할 도메인을 지정합니다. /parameters옵션을 사용하는 경우 값은 <proxydomain> 요소이며 문자열을 포함합니다.

/proxypassword:password

또는

/pp:password

인증이 필요한 프록시 서버에 연결할 사용할 암호를 지정합니다. /parameters옵션을 사용하는 경우 값은 <proxypassword> 요소이며 문자열을 포함합니다.

/proxyusername:username

또는

/pu:username

인증이 필요한 프록시 서버에 연결할 사용할 사용자 이름을 지정합니다. /parameters 옵션을 사용하는 경우 값은 <proxyusername> 요소이며 문자열을 포함합니다.

/server

계약을 기반으로 XML Web services 대한 추상 클래스를 생성합니다. 기본값은 클라이언트 프록시 클래스를 생성하는 것입니다. /parameters 옵션을 사용하는 경우 값은 "server" 포함하는 <style> 요소입니다.

/serverInterface

ASP.NET 서비스의 서버 구현을 위한 인터페이스를 생성합니다. WSDL 문서의 바인딩에 대해 인터페이스가 생성됩니다. WSDL만으로 WSDL 계약을 구현합니다. 인터페이스를 구현하는 클래스의 메서드에 WSDL 계약을 변경하는 서비스 특성이나serialization 특성을 포함시킬 없습니다. 약식 표현은 /si입니다. /parameters옵션을 사용하는 경우 값은"serverInterface" 포함하는 <style> 요소입니다.

/sharetypes

형식 공유 기능을 설정합니다. 기능은 서로 다른 서비스 간에 공유되는 동일한 형식에 대해 단일 형식 정의를 사용하여 하나의 코드 파일을 만듭니다. 네임스페이스, 이름 연결 서명이 동일해야 합니다. "http://" URL 서비스를 명령줄 매개 변수로 참조하거나 로컬 파일에 대한 discomap 문서를 만듭니다. /parameters 옵션을 사용하는 경우 값은 <sharetypes> 요소이며 true 또는 false입니다.

/u[sername]:username

인증이 필요한 서버에 연결할 사용할 사용자 이름을 지정합니다. /parameters옵션을 사용하는 경우 값은 <username> 요소이며 문자열을 포함합니다.

/?

도구의 명령 구문 옵션을 표시합니다.

.wsdl 파일은 WSDL( 서비스 기술 언어)이라는 XML 문법으로 작성된 XML 문서입니다. 파일은 XML Web services 동작을 정의하고, 서비스와 상호 작용하는 방법을 클라이언트에 지시합니다.

XML Web services 대한 검색 문서는 서비스 검색 도구(Disco.exe) 사용하여 얻을 있습니다. 도구에서 생성되는 .discomap, .disco, .wsdl .xsd 파일은 Wsdl.exe 대한 입력 파일로 사용할 있습니다.

Wsdl.exe 사용하여 프록시 클래스를 만들면 지정한 프로그래밍 언어로 단일 소스 파일이 만들어집니다. 프록시 클래스의 소스 코드를 생성하는 과정에서 도구는 서비스 설명에 지정된 개체에 사용할 가장 적합한 형식을 결정합니다. 경우에 따라 개체를 형식으로 캐스팅하기 위해 최소 공분모 접근법을 사용하기도 합니다. 따라서 프록시 클래스에 생성된 형식이 개발자가 원하거나 예상하는 형식이 아닐 있습니다. 예를 들어, Wsdl.exe 서비스 설명에 ArrayList 형식이 있으면 생성된 프록시 클래스에 Object Array 만듭니다. 정확한 개체 형식이 캐스팅되도록 하려면 생성된 프록시 클래스가 포함된 파일을 열어서 잘못된 개체 형식을 원하는 개체 형식으로 변경해야 합니다.

· /parameters 옵션은 대부분의 명령 프롬프트 옵션에 해당하는 요소를 포함하는 파일을 지정합니다. 일부 명령 프롬프트 옵션은 /parameters 파일 형식으로만 사용할 있습니다.

/parameters 옵션에서 지원하는 XML 파일 형식은 외부 <wsdlParameters xmlns="http://microsoft.com/webReference/"> 요소 내에 있는 일련의 요소입니다. 명령 프롬프트 값이 지정되었는데 다른 옵션이나 값을 포함하는 /parameters 파일이 사용되면 명령 프롬프트에서 지정된 값이 사용됩니다. <wsdlParameters xmlns="http://microsoft.com/webReference/"> 요소에는 <nologo> 요소, <parsableerrors>요소 <sharetypes> 요소가 있어야 합니다.

여러 옵션이 <verbose> 요소를 포함해야 하는 <webReferenceOptions> 요소의 자식 요소로 전달됩니다. <webReferenceOptions> 다른 자식 요소는 다음과 같습니다.

· <style>. "client", "server" 또는 "serverInterface" 포함합니다.

· <schemaImporterExtension>.<type>요소를 임의의 수만큼 포함합니다.

· <codeGenerationOptions>.공백으로 구분한 다음과 같은 문자열 집합을 사용할 있습니다.

· "properties"

· "newAsync"

· "oldAsync"

· "order"

· "enableDataBinding"

/parameters 옵션에 대한 사용 예는 다음 예제 부분을 참조하십시오.

예제


다음 명령은 XML Web services 대해 C# 언어로 클라이언트 프록시 클래스를 만듭니다.

복사

wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

다음 명령을 사용하여 지정된 URL 위치한 XML Web services 대해 C# 언어를 사용하여 클라이언트 프록시 클래스를 만듭니다. 클라이언트 프록시 클래스는 myProxyClass.cs 파일에 저장됩니다.

복사

wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

다음 명령을 사용하여 지정된 URL 위치한 XML Web services 대해 Microsoft Visual Basic 언어를 사용하여 클라이언트 프록시 클래스를 만듭니다. 클라이언트 프록시 클래스는 myProxyClass.vb 파일에 저장됩니다.

복사

wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

다음 예제 코드에서는 명령 프롬프트에서 URL 인수와 함께 사용할 있는 필수 요소만 작성된 기본 /parametersWSDL 파일을 보여 줍니다.

복사

<wsdlParameters xmlns="http://microsoft.com/webReference/">

<nologo>true</nologo>

<parsableerrors>true</parsableerrors>

<sharetypes>true</sharetypes>

</wsdlParameters>

WSDL 문서는 아래 코드 예제에서처럼 <documents>요소를 사용하여 /parametersWSDL 파일에 추가됩니다. <document>요소는 <documents>요소 내에서 횟수에 제한 없이 사용할 있습니다.

복사

<wsdlParameters xmlns="http://microsoft.com/webReference/">

<nologo>true</nologo>

<parsableerrors>true</parsableerrors>

<sharetypes>true</sharetypes>

<documents>

<document>http://www.contoso.com/service.asmx?WSDL</document>

</documents>

</wsdlParameters>

다음 /parameters WSDL 파일에서는 <webReferenceOptions>요소 내에서의 <codeGenerationOptions> <style>요소의 사용을 보여 줍니다. 경우 파일은 프록시 코드에 있는 새로운 스타일의 데이터 바인딩을 실현하고, 스키마 가져오기 확장 프로그램을 지정하며, 간단하게 출력하고 Wsdl.exe 클라이언트 프록시를 만들도록 지정합니다.

복사

<wsdlParameters xmlns="http://microsoft.com/webReference/">

<nologo>true</nologo>

<parsableerrors>true</parsableerrors>

<sharetypes>true</sharetypes>

<documents>

<document>http://www.contoso.com/service.asmx?WSDL</document>

</documents>

<webReferenceOptions>

<verbose>false</verbose>

<codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>

<schemaImporterExtension>

<type>MyNamespace.MyCustomImporterExtension,ExtensionLibrary</type>

</schemaImporterExtensions>

<style>client</style>

</webReferenceOptions>

</wsdlParameters>

참고 항목


참조

서비스 검색 도구(Disco.exe)


개념

XML Web services 프록시 만들기
XML Web services 설명
XML Web services 개요


기타 리소스

.NET Framework Tools
SDK Command Prompt

 


SPROXY.exe 파일은 Native c++ 클라이언트 코드를 위해 사용합니다.

SPROXY.EXE: XML Web services 프록시 생성기

Visual Studio .NET 2003

항목은 아직 평가되지 않았습니다.- 항목 평가

SPROXY.EXE WSDL 설명을 기반으로 XML Web services 액세스하기 위해 Native C++ 클라이언트 코드를 생성하는 명령줄 도구입니다.

도구는 참조 추가 대화 상자 사용하여 Native C++ 프로젝트에 참조가 추가될 때나 파일 설정에서 도구 서비스 프록시 생성기 설정되고 프록시 생성 언어 Native C++ 설정될 Visual C++ 프로젝트 시스템에 의해 사용됩니다.

명령줄 구문은 다음과 같습니다.

복사

sproxy [ options ] [ /out:outputfile ] input_location

매개 변수

옵션

다음 하나 또는 이상의 항목(선택적 요소)

옵션

설명

/? 또는/help

사용 정보를 표시합니다.

/nologo

저작권 메시지를 표시하지 않습니다.

/nowarn

모든 경고를 사용하지 않습니다.

/nopragma

출력 파일에"#pragma once" 삽입하지 않습니다.

/noclobber

출력 파일이 있는 경우에는 출력 파일을 덮어쓰지 않습니다.

/nonamespace

생성된 프록시 파일에 C++ 네임스페이스를 삽입하지 않습니다. 기본적으로, SPROXY WSDL 서비스 이름에 따라 네임스페이스를 삽입합니다.

/namespace:<name>

생성된 프록시 파일에 <name>이라고 하는 네임스페이스를 삽입합니다. 기본적으로, SPROXY WSDL 서비스 이름에 따라 네임스페이스를 삽입합니다.

네임스페이스는 올바른 C++ 식별자여야 합니다. <name> 비어 있는 경우, /namespace:<name> 옵션은/nonamespace 기능이 같습니다.

/wsdl <input_location>

지정된 경로 <input_location>에서.discomap 파일(기본값) 아닌.wsdl 파일을 처리합니다.

outputfile

생성된 코드를 기록할 파일의 이름(선택적 요소). 이러한 파일이 있는 경우 /noclobber 지정되지 않았으면 파일은 덮어쓰게 됩니다. outputfile 지정되지 않은 경우, SPROXY WSDL 서비스 이름에 따라 현재 디렉터리에서 파일을 만듭니다.

input_location

프록시 코드를 생성할 대상 XML Web services 설명하는 파일의 위치입니다. input_location .discomap 또는 .wsdl 파일에 대한 URL이나 파일 시스템 경로입니다. .wsdl 파일을 사용할 때는 /wsdl 옵션을 지정합니다.

또한 SPROXY.EXE 사용하여 results.discomap 파일을 처리할 있습니다. .discomap 파일에는 .wsdl 파일의 로컬 복사본에 대한 링크가 포함되며 스키마 파일의 로컬 복사본이 사용됩니다.

설명

SPROXY.EXE CSoapRootHandler 템플릿 인수에서 파생된 프록시 클래스 템플릿을 생성합니다. 템플릿 인수는 SOAP client archetype 따라야 하며, 기본값은 CSoapSocketClientT<> 설정해야 합니다.

프록시 클래스에 포함된 메서드는 서비스에 의해 노출된 SOAP 메서드를 나타냅니다. XML Web services 액세스하려면 프록시 클래스의 인스턴스를 만들고 적합한 메서드를 호출합니다.

SPROXY.EXE Visual C++ 설치의 \vc7\bin 디렉터리에 들어 있습니다.

SPROXY에서 지원하는 형식 목록은 지원 형식 ATL 서버로 만든 XML Web services에서 지원되는 형식 참조하십시오.

참고 SPROXY 생성 클라이언트에는 MSXML3 필요합니다. 클라이언트를 실행하기 전에, 생성된 클라이언트가 설치된 컴퓨터에 MSXML3 설치해야 합니다.

Xmlinst.exe MSXML3 대체 모드로 설치합니다. Xmlinst.exe 대체 모드 도구를 MSDN http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/469/msdncompositedoc.xml에서 다운로드합니다.

Xmlinst.exe 사용하는 방법에 대한 자세한 내용은 기술 자료 문서 "PRB: Application Errors Occur After You Run Xmlinst.exe on Production Servers"(Q278636) 참조하십시오. 기술 자료 문서는 MSDN Library CD-ROM이나 http://support.microsoft.com/support 있습니다.

MSXML3 실행하는 방법에 대한 자세한 내용은 대체 모드로 MSXML 3.0 실행 참조하십시오.

참고 SPROXY 생성 헤더 파일에는 atlsoap.h 포함되어 있습니다. 파일은 [emitidl("restricted")]; 선언합니다. [module] 특성이 발견될 IDL 내보내기가 제한되면 오류가 발생합니다. atlsoap.h 포함시킨 다음, 코드에서 [emitidl("true")]; 사용하여 IDL 내보내기를 설정할 있습니다. atlextmgmt.h에는 atlsoap.h 동일한 emitidl 선언이 포함되므로 동일한 사항이 적용됩니다.

참고 SPROXY 생성 메서드는 역참조하기 전에 NULL 대한 포인터 매개 변수를 검사하지 않습니다. XML Web services 프록시 클래스의 메서드에 전달하기 전에 먼저 NULL 대한 포인터를 검사하십시오.

예제

다음 명령줄은 http://myserver/myservice.dll?Handler=GenMyServiceWSDL에서 가져온 WSDL 설명된 XML Web services 액세스하기 위해 C++ 프록시 코드가 들어 있는 myservice.h 파일을 생성합니다.

복사

sproxy /wsdl http://myserver/myservice.dll?Handler=GenMyServiceWSDL /out:myservice.h

다음 명령줄은 results.discomap(.wsdl 파일의 로컬 복사본에 대한 링크를 포함)에서 가져온 WSDL 설명된 XML Web services 액세스하기 위해 C++ 프록시 코드가 들어 있는 출력 파일을 생성합니다.

복사

sproxy results.discomap

SPROXY 의해 생성된 프록시 클래스를 사용하는 코드 예제를 보려면 SOAP 클라이언트 코드 DataSetConsumer 샘플 참조하십시오.

참고 항목

ATL 서버로 만든XML Web services | XML Web services 제공| XML Web services 사용| SOAP 샘플

반응형

댓글