学校での私のプロジェクトでは、Java EEアプリと相互作用させるために、C#アプリでWCFを使用していくつかのSOAPWebサービスを作成する必要があります。
WCFでこれを行う方法を教えてくれるチュートリアルが見つかりません。私は何をすべきか?
学校での私のプロジェクトでは、Java EEアプリと相互作用させるために、C#アプリでWCFを使用していくつかのSOAPWebサービスを作成する必要があります。
WCFでこれを行う方法を教えてくれるチュートリアルが見つかりません。私は何をすべきか?
Visual StudioでWCFプロジェクトを作成し、すべてのコードをC#で記述します。実際に発生する問題は、JavaEEからSOAP呼び出しを行うことです。
WCFサービスは、WCFをホストするWindowsサービスではなく、IISでホストされます。
WCFの使用を開始する方法に関するチュートリアル:
http://msdn.microsoft.com/en-us/library/dd936243.aspx
楽しみ!
2つの異なるエンドポイントでサービスを公開できます。SOAPの場合はSOAPをサポートするバインディングを使用できます(例:basicHttpBinding)。RESTfulの場合はwebHttpBindingを使用できます。RESTサービスはJSONであると想定しています。その場合、次の動作構成で2つのエンドポイントを構成する必要があります。
<endpointBehaviors>
<behavior name="jsonBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
シナリオでのエンドポイント構成の例は次のとおりです。
<services>
<service name="TestService">
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="json" binding="webHttpBinding" behaviorConfiguration="jsonBehavior" contract="ITestService"/>
</service>
</services>
そのため、このサービスは
http://www.example.com/soaphttp://www.example.com/jsonで利用できます
。
[WebGet]を運用コントラクトに適用してRESTfulにします。例えば
パブリックインターフェイスITestService{[OperationContract][WebGet] string HelloWorld(string text)}
RESTサービスがJSONにない場合、操作のパラメーターに複合型を含めることはできないことに注意してください。
戻り形式としての単純な古いXMLの場合、これはSOAPとXMLの両方で機能する例です。
[ServiceContract(Namespace = "http://test")]
public interface ITestService
{
[OperationContract]
[WebGet(UriTemplate = "accounts/{id}")]
Account[] GetAccount(string id);
}
RESTプレーンオールドXMLのPOX動作
<behavior name="poxBehavior">
<webHttp/>
</behavior>
エンドポイント
<services>
<service name="TestService">
<endpoint address="soap" binding="basicHttpBinding" contract="ITestService"/>
<endpoint address="xml" binding="webHttpBinding" behaviorConfiguration="poxBehavior" contract="ITestService"/>
</service>
</services>
サービスはで利用可能になります
http://www.example.com/soaphttp://www.example.com/xmlREST
リクエストはブラウザで試してください http://www.example.com/xml/accounts/A123
サービス参照を追加した後のSOAPサービスのSOAP要求クライアントエンドポイント構成、
<client>
<endpoint address="http://www.example.com/soap" binding="basicHttpBinding"
contract="ITestService" name="BasicHttpBinding_ITestService" />
</client>
C#で
TestServiceClient client = new TestServiceClient();
client.GetAccount("A123");
これを行う別の方法は、2つの異なるサービス契約を公開し、それぞれを特定の構成で公開することです。これにより、コードレベルでいくつかの重複が生成される可能性がありますが、結局のところ、それを機能させたいと考えています。
ここでWCFへのリンクを更新しました:http: //invalidcast.tumblr.com/post/52980598607/a-gentle-introduction-to-wcf