デルファイ呼び出しのJava Webサービス

ユニットUnit1は、

インターフェース

用途
  Winapi.Windows、Winapi.Messages、System.SysUtils、System.Variants、System.Classes、Vcl.Graphics、
  Vcl.Controls、Vcl.Forms、Vcl.Dialogs、Vcl.StdCtrls。

入力
  TForm1 = クラス(TFormは)
    BTN1:のTButtonと、
    edt1:TEDIT。
    手順btn1Click(送信者:TObjectを);
  プライベート
    { プライベート宣言} 
  公共
    { 公開宣言} 
  エンド

VAR 
  をForm1:TForm1; 

実装

{ $ R * .DFM }は

使用HelloService1と、

手順TForm1.btn1Click(送信者:TObjectを);
  VaRの
   OWS:HelloService。
  S:文字列;
 開始
 // 'のhttp:// localhostを:?8080 / helloService /サービス/ HelloService WSDL'; 
   // OWS:= GetHelloService(真'のhttp:// localhostを:8081 / WSDL / IMyData'、nilを); 
   OWS:= GetHelloService(真、' ?にhttp:// localhost:8080 / helloService /サービス/ HelloService WSDL 'nilを);
   // 参数中可以使用配置的URL 
  S:= ows.say(' delphixe10 XXXX:' ); 

  もし長さ(S)<> 0  、次いで
  開始
    edt1.Text: = Sを、
  エンド; 

 エンド;
終わり





// 导入WSDL文件后自动生成的.PAS文件
// ************************************ ************************************ // 
// このファイルで宣言された型は、データから生成されました読み取る
// WSDLファイルは、以下の:
// WSDLをします。http:// localhost:8080 / helloService /サービス/ HelloService WSDL?
//   >インポートします。http:// localhost:?8080 / helloService /サービス/ HelloService WSDL> 0 
// エンコード:UTF-8 
// バージョン:1.0 
// (2018年9月3日〇時55分03秒- - $改訂:69934 $)
//************************************************** ********************** // 

ユニットHelloService1。

インターフェイスは

使用していますSoap.InvokeRegistry、Soap.SOAPHTTPClient、System.Types、Soap.XSBuiltInsを。

constの
  IS_REFは   $ = 0080 ; 


タイプ

  // *********************************************** ************************* // 
  // WSDL文書で言及し、次の種類は、表現されていない
  // このファイルに。彼らはどちらかの別名である[@]他の種類のが表されていないか、呼ばれていました
  // 決してではなく[!]文書で宣言されました。後者のカテゴリからタイプ
  //典型的には、事前定義/既知のXMLまたはエンバカデロ型にマップ。しかし、彼らはまた、可能性が
  // スキーマ型を宣言するか、インポートに失敗した間違ったWSDL文書を示しています。
  // ************************************************ ************************ // 
  // :!文字列- 「http://www.w3.org/2001/XMLSchema"[Gbl] 



  // ************************************************ ************************ // 
  // 名前空間ます。http://サービス
  // 輸送:http://schemas.xmlsoap.org/soap / HTTP 
  // スタイル:ドキュメント
  // 使用:リテラル
  // バインディング:HelloServiceSoapBinding 
  // サービス:HelloServiceService
  // ポート:HelloService 
  // URLます。http:// localhost:8080 / helloService /サービス/ HelloService 
  // ************************** ********************************************** // 
  HelloService = インタフェース(IInvokable)
  [ ' {A2CB7213-47FF-E203-449D-D3EC4A92A153} ' ]
     関数   言う(CONST名_:文字列):文字列STDCALL ;
  エンド; 

機能 GetHelloService(UseWSDL:ブール= System.False; ADDR:文字列 = '' ; HTTPRIO:THTTPRIO = nilを):HelloService。


実装は
  使用していますSystem.SysUtilsを。

機能 GetHelloService(UseWSDL:ブール; ADDR:文字列; HTTPRIO:THTTPRIO):HelloService。
constの
  defWSDL = ' ?にhttp:// localhost:8080 / helloService /サービス/ HelloService WSDL ' ; 
  defURL   = ' にhttp:// localhost:8080 / helloService /サービス/ HelloService ' ; 
  defSvc   = ' HelloServiceService ' ; 
  defPrt   = ' HelloService ' ;
VaRの
  RIO:THTTPRIO。
ベギン
  結果: = nilを;
  場合(アドレス= 「」、その後
  始まる
    場合 UseWSDL 、その後
      の住所: = defWSDL
     
      の住所: = defURL。
  エンド;
  もし HTTPRIO = nilの 後、
    RIO: = THTTPRIO。作成ゼロ他の
    RIO: = HTTPRIOを。
  試す
    の検索結果を: =(RIO としてHelloService);
    場合 UseWSDLは、その後
    始まります
      RIO.WSDLLocation: = ADDR; 
      RIO.Service: = defSvc。
      RIO.Port: = defPrt。
    終了 
      :RIO.URL = ADDRを。
  最後に
    あれば(結果= ゼロ(HTTPRIO = nilのその後、
      RIO.Free。
  エンド;
エンド; 


初期
  { HelloService } 
  InvRegistry.RegisterInterface(のTypeInfo(HelloService)、' HTTP://サービス'' UTF-8 ' )。
  InvRegistry.RegisterDefaultSOAPAction(のTypeInfo(HelloService)、'' ); 
  InvRegistry.RegisterInvokeOptions(のTypeInfo(HelloService)、ioDocument)。
  { HelloService.say } 
  InvRegistry.RegisterMethodInfo(のTypeInfo(HelloService)、' 言う''' ' [ReturnName = "sayReturn"] ' )。
  InvRegistry.RegisterParamInfo(のTypeInfo(HelloService)、' 言う'' 名_ '' ''' ); 

終わり





//HelloService.javaの
パッケージサービス。
 
パブリック クラス HelloService { 
    公共の文字列の発言(文字列名)は、InterruptedExceptionある{スロー
        リターンを「ハローworldxxx ----->」+名。
    } 
}

おすすめ

転載: www.cnblogs.com/tobetterlife/p/12172975.html