2011-09-15 5 views
0

JavaベースのシステムとSOAPを介して対話する必要がある.Net Webアプリケーションがあります。Webサービス/ WCF初心者:JavaベースのSOAP Webサービスに対してWCF Proxy Client/Objectを作成

私はいくつかの基本的なWCF以外のWebサービスを扱っておらず、これに関するガイダンスはありがたいです。

基本的には、SOAP Webサービスに接続するための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は、Webサービス用のクライアントプロキシを生成するために必要なものです。そして、いいえ、これはWCFの時代以前ではありません。 WSDLはこのために特別に設計されています。

最も簡単な解決策は、svcutilを使用してコードを作成することです。

WebサービスのWSDLを使用してsvcutilを呼び出すと、クライアントコードとその構成が返されます。

次に、Webサービスの操作をクライアントインスタンスのメソッドとして呼び出します。これほど簡単です!

たとえば、このような基本的なウェブサービスを考えてみましょう: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などの必要なアセンブリと一緒に)あなたのプロジェクトにこれらを追加して、今、あなたはこのようなコードを使用してWebサービスを呼び出すことができます。

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は、物事が容易になります。サービスクラスの適切な構成や属性を使用することで、セキュリティを追加することも簡単です。

関連する問題