(Javaの氷のアプリケーション開発、Pythonの氷のアプリケーションの開発、JavaとPythonの氷のサービスを開発バインディング)zeroc氷のアプリケーション開発を取得

 

 WindowsおよびLinuxを含む設計の主流プラットフォームのフレームワーク、などのRPC氷は、C ++やJava、C#(およびVisual Basicなど、他の.NET言語)やPython、Rubyの、PHPとActionScriptを含む言語の広い範囲をサポートしています。

インストールの氷   

1.ダウンロード公式サイトのアドレス   https://zeroc.com/downloads/ice

2.セットアップここ設置場所E:\プログラムファイル\ ZeroC \アイス3.6.3

3.環境変数の設定

コンピュータ - > [プロパティ] - > [システムの詳細設定 - >環境変数

1)変数は、インストールパスで、新しいICE_HOMEを確立します

2)パスに "%のICE_HOME%の\ビン" を追加します。

3)試験

設定が完了したら、開いてCMD

バージョン番号は、インストールと構成の登場です完了です

 

 

 

氷と組み合わせたJava開発

MavenのJavaプロジェクト管理を作成します。

pom.xmlに依存して追加します。

<! - https://mvnrepository.com/artifact/com.zeroc/ice - > 
		<依存> 
			<groupIdを> com.zeroc </ groupIdを> 
			<たartifactId>氷</たartifactId> 
			<バージョン> 3.6.3 < /バージョン> 
		</依存関係>

好ましくは、バージョン依存氷に対応します

方法は、必要な依存関係名よりもBaiduの達人+より直接的に依存して迅速に見つけます

Mavenの氷のように

 

 

**プロジェクトフォルダ内のファイルを作成し、スライスフォルダを作成します。アイス

プロジェクトの例Hello.ice

[[「のjava:パッケージ:com.test.ice.service 」]] // 親構造の中で定義されたJavaパッケージ名
モジュールのデモ//モジュールパッケージ名
{ 
	// Helloインタフェースのサービス名をインターフェース
	{ 
		文字列のsayHello(文字列S); //特定のメソッド
	}; 
};

 

1)Javaコードを生成slice2java氷コンパイル済みのファイルを使用します

出力-dirのディレクトリ出力ファイル - :CMDシェルまたは氷の中のファイルは、以下のコマンドpsを使用したフォルダを開きます

slice2java。\ Hello.ice --output-dirの.. \ SRC \メイン\のJava

あなたは、コードが表示されない場合は、プロジェクトをリフレッシュすることができます

2)生成されたコードプラグEclipseを使用して

日食 - ヘルプ - 氷のための市場を検索し、最初のプラグインをインストール 

インストールが完了したら再起動の日食です

 >氷Builderを追加 - 再起動後、右のアイスビルダーを選択し、プロジェクトの名前を選択します

氷は、Javaコードを生成しています

 

プログラミング

生成されたコードでは、「_iceファイルのインタフェース名Disp.java」ファイルで見ることができ、例えば、このプロジェクトは_HelloDisp.javaです

1)インタフェースクラスが_HelloDisp.javaあるHelloImplを継承します

輸入com.test.ice.service.demo._HelloDisp。

輸入Ice.Current。

パブリッククラスあるHelloImplは_HelloDisp {延び

	/ ** 
	 * 
	 * / 
	プライベート静的最終長いのserialVersionUID = 1Lと、

	@Override 
	パブリック文字列のsayHello(文字列S、現在__current){ 
		System.out.printlnは(S); 
		「こんにちは、」+ Sを返します。
	} 
	
}

PS:次の単語は無視することができ、それはインターフェースが地元の図書館、具体的な動作例にjarファイルにパッケージ化インストールするには、APIプロジェクト、サーバープロジェクト、クライアントのプロジェクト、インタフェースプロジェクトMavenの方法、すなわち最高のは、同じプロジェクトとのインタフェースではありませんHTTPS: //www.jianshu.com/p/5ce9d1567fee、他の項目は、インタフェース・プロジェクトの依存関係を追加します

2)クラスServerサービスが開始されます

輸入com.test.ice.service.demo.impl.HelloImpl。

輸入Ice.Communicator。
輸入Ice.ObjectAdapter。

パブリッククラスサーバー{ 
 
	パブリック静的無効メイン(文字列[] args){ 
		int型のステータス= 0。
		CommunicatorのIC = NULL; 
		してみてください{ 
			System.out.printlnは( "サーバーの開始..."); 
			IC = Ice.Util.initialize(引数)。
			ObjectAdapterアダプター= ic.createObjectAdapterWithEndpoints( "iceTest"、 "デフォルト10006 -p"); 
			Ice.Objectオブジェクト=新しいあるHelloImpl(); 
			adapter.add(オブジェクト、ic.stringToIdentity( "ハロー"))。
			adapter.activate(); 
			System.out.println( "サーバーの成功を開始します。"); 
			ic.waitForShutdown(); 
		}キャッチ(Ice.LocalException電子){
			e.printStackTrace(); 
		}キャッチ(例外e){ 
			System.err.println(e.getMessage())。
			ステータス= 1; 
		} 
		(!IC =ヌル){場合
			{試みる
				ic.destroyを(); 
			}キャッチ(例外e){ 
				System.err.println(e.getMessage())。
				ステータス= 1; 
			} 
		} 
		にSystem.exit(ステータス)。
	} 
 
}

3)クライアントクライアント

輸入com.test.ice.service.demo.HelloPrx; 
輸入com.test.ice.service.demo.HelloPrxHelper。

パブリッククラスクライアント{ 

	パブリック静的無効メイン(文字列[] args){ 
		int型のステータス= 0。
		Ice.Communicator IC = NULL; 
		{試みる
			IC = Ice.Util.initialize(引数)を、
			Ice.ObjectPrxベース= ic.stringToProxy( "こんにちは:デフォルト-p 10006"); 
			ハローHelloPrx = HelloPrxHelper.checkedCast(ベース)
			もし(ハロー== NULL){ 
				スロー新しいError( "無効なプロキシ"); 
			} 

			のString = hello.sayHello( "世界!"); 
			System.out.println( ">>" + S)。		
		}キャッチ(Ice.LocalException電子){ 
			e.printStackTrace(); 
			ステータス= 1;
			System.err.println(e.getMessage())。
			ステータス= 1; 
		} 
		(!IC =ヌル){場合
			{試みる
				ic.destroyを(); 
			}キャッチ(例外e){ 
				System.err.println(e.getMessage())。
				ステータス= 1; 
			} 
		} 
		にSystem.exit(ステータス)。
	} 
}

4)プログラムを実行します。 

ファーストクラスのサービスは、サーバーを実行して起動し、

クライアントClientを起動

データサービスによって終了

クライアントは、サーバから返されたデータを受け取り、

単純なJava、氷開発のこの組み合わせの終わりを紹介OHと、特定の綿密なフォローアップの取り組み

 

 

Pythonのプロジェクト開発氷

 1.氷必要な依存関係をインストールします。

zeroc-氷をインストールPIP

 2.書き込み氷のファイル

モジュールデモ
{ 
	インタフェースハロー
	{ 
		ストリングのsayHello(文字列s)。
	}。
}。

3.書き込みサーバのランチャー

#!は/ usr / binに/のenv Pythonの
#コーディング= UTF-8 
のインポートSYS、アイス

#動的にロードされたスライスファイルとコンパイル
Ice.loadSlice( "./ demo.iceを")

モジュール名#iceファイル
のインポートデモ
##達成サービスクラス
クラスあるHelloImpl(demo.Hello):
    DEFのsayHello(セルフ、S、電流=なし):
        プリントSの
        MSG = "こんにちは、" S + 
        リターンMSG 


Ice.initialize(sys.argvの)Communicatorなどと:
    印刷「サーバー...起動" 
    アダプター= communicator.createObjectAdapterWithEndpoints(" SimplePrinterAdapter ""デフォルト-p 10006 ")
    オブジェクト=あるHelloImpl()
    adapter.add(オブジェクト、communicator.stringToIdentity("こんにちは「))
    adapter.activate() 
    印刷"サーバーの成功を起動します。」
    communicator.waitForShutdown()

4.起動するクライアントプログラムを書きます

#!は/ usr / binに/ envをパイソン
= UTF-8#コーディング
輸入SYS、アイス
Ice.loadSlice( "./ demo.ice")
輸入デモ

コミュニケーターとしてIce.initialize(sys.argvの)を持つ:
    ベース= communicator.stringToProxy ( "こんにちは:デフォルト-p 10006")
    プリンタ= demo.HelloPrx.checkedCast(ベース)
    でない場合、プリンタ:
        RuntimeErrorが( "無効なプロキシ")上げる
    printer.sayHello印刷( "世界を!")

5.プログラムを実行します。   

1)サーバプログラムを起動します

2)クライアントプログラムを起動します

3)サーバは、クライアントの送信データ出力を受信します

 

4)クライアント・サーバーに戻り、データ出力を受信しました

 

 

 

 JavaとPythonのサービスは、お互いを呼び出します

サーバーサービスを開始するJava、Pythonのクライアントプログラムは、サービスを呼び出します

1)Javaサーバサービスを開始

2)Pythonクライアントサービスを開始

3)サーバは、サービスデータ出力を受信します

4)クライアントは、返されたデータ出力を受信します

 

 これまでのところ、ドアはそれを見るために

 

おすすめ

転載: www.cnblogs.com/sangewuxie/p/11412587.html