s2hessian.NET使うと、Seasar2のコンポーネントをWSDLなしに。NETクライアントか
ら簡単に呼び出
す事ができるようになります。
netframework 2.0を使用してください。Visual Studio 2005
Express Editonなら無償で使用できます。s2hessian.NETとnethessian.ExampleをDownload
し、解凍してできた
s2hessian.NETディレクトリとnethessian.Exampleディレクトリを解凍し、nethessian.Exampleを
Visual
Studioで開いて下さい。
DownLoad
s2hessian.NET
nethessian.Example
Serverは、s2hessianをそのまま使います。
ClientのTest
nethessian.Example ソリューションの中に、nethessian.Test Projectがありますので、その
Formを開いて、Test Startボタンを押して下さい。
Sampleがはしります。
実際の使用方法
まず下記のコマンドでProxyを作ります。
DotNetProxy dnp = new DotNetProxy("http://localhost:8080/s2hessian/s2h/")
Method CALLは下記の形式になります。
(return type) dnp.invoke("コンポーネントの名前","メソッド",typeof(return type),メソッドの引数) 例えば、下記の様になり、メソッドの引数は、必要な個数分カンマで区切ってならべます。 int resi = (int)dnp.invoke("test", "intPlus", typeof(int), 300, 5);
C#のクラスとJAVAのクラスの対応を指定するには、2つの方法があります
dnp.setClassConv?("nethessiantest.MyObject1","org.seasar.s2hessian.example.MyObject?");の様に明示して指定
あるいは下記の様に CLASSの前に属性で指定
[JavaClass("org.seasar.s2hessian.example.MyObject")] public class MyObject1 { private int int1; public int getInt1() { return int1; }
public void setInt1(int int1) { this.int1 = int1; } 〜略〜 }
なお上記の様に明示したものと、Method Callの引数およびreturn typeで指定したもの(一度でも)は、変換
Tableに入りますが、指定のないClassが、Serverから戻って来ると Errorになります。この場合は、明示する方法で予め変換
Tableに追加しておいて下さい。
|