2

Delphi XE7 + Employee Interbase DB を使用しています。

Datasnap で SOAP サーバーを構築しようとしています。

1 つのサーバーに 3 つの SOAP サーバー データ モジュールがあり、それぞれにテーブルがあります: 顧客、従業員、国、それぞれが同じ方法 (ファイル、新規、その他、SOAP サーバー データ モジュール) で作成され、次にデータ エクスプローラーからテーブルをドラッグします。データ モジュール(Delphi は TSQLCOnnection と TSQLDataset を作成します)を追加し、次に TDatasetProvider を追加します。3 つのデータ モジュールは同一です。

クライアント アプリケーションには、WSDL インポーターによって作成された 3 つのインターフェイスがあります。

ICountryWM = interface(IAppServerSOAP)
  ['{1DA001BC-4DFB-E7F8-F62D-DA3545B334DC}']
end;

3 つのインターフェイスは同一です (もちろん、名前と GUID は異なります)。

クライアント フォームには 3 つのボタンがあり、同じ操作を実行します。

procedure TClientFM.BtnEmployeeClick(Sender: TObject);
begin
  ClientDataSet.Close;
  SoapConnection.Close;
  SoapConnection.UseSOAPAdapter := False;
  SoapConnection.SOAPServerIID := '{02E9AB9B-DB17-ACF5-68D9-73FC763C04DC}';
  SoapConnection.URL := 'http://localhost:8080/soap/IEmployeeWM';
  ClientDataset.ProviderName := 'EmployeeProvider';
  SoapConnection.Open;
  ClientDataSet.Open;
end; 

ServerID、URL、ProviderName のみを変更します。

3 つの DatasetProvider ini の 3 つのデータ モジュールでは、「エクスポート済み」がチェックされています。

当初、最初の SOAP サーバー データ モジュール (Customer) はうまく機能しました。私のクライアントから、Customers テーブルを見ました。従業員または国を試したとき、常に「プロバイダーがエクスポートされていません」というメッセージが表示されました。

私は大きな間違いを犯しました:何かを変更しようとして、エクスポートされたフラグのチェックを外し、サーバーとクライアントをコンパイルして実行しました:何も機能しませんでした。わかりました、私はそれを期待していました。次に、フラグを再確認しました...エクスポートされたフラグが確認されましたが、正しく機能するプロバイダーはありません...(はい、現在機能していたものは機能しません)。

サーバーとクライアントの両方が同じ PC で実行されます。

誰かが私に何が間違っているのか教えてもらえますか? 問題はサーバーにあると思いますが、サーバーのどこですか?

4

0 に答える 0