平台上调用例子:
unit MainForm;
interface
uses
Business.System, Business.Forms,
HessianRPC;
type
TMainForm = class(TForm)
btnHelloWorld: TButton;
btnAdd: TButton;
btnObject: TButton;
procedure BizFormCreate(Sender: TObject);
procedure btnHelloWorldClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnObjectClick(Sender: TObject);
private
FServer: THessianSever;
public
{public declarations}
end;
InParameter = class
public
intField: Integer;
stringField: string;
end;
OutParameter = class
public
intField: Integer;
stringField: string;
end;
implementation
procedure TMainForm.BizFormCreate(Sender: TObject);
begin
FServer := THessianSever.Create('http://localhost/HessianCallSample/');
// 注册类型映射
FServer.JavaClassMapping.Add('com.justep.hessian.InParameter', InParameter);
FServer.JavaClassMapping.Add('com.justep.hessian.OutParameter', OutParameter);
end;
procedure TMainForm.btnHelloWorldClick(Sender: TObject);
begin
JSDialogs.ShowMsg(FServer.Call('helloWorld', []) as System.String, 'Hessian Call Sample');
end;
procedure TMainForm.btnAddClick(Sender: TObject);
var
o: object;
i: Integer;
begin
o := FServer.Call('add', [1, 2]);
i := Integer(o);
JSDialogs.ShowMsg(SysUtils.IntToStr(i), 'add');
end;
procedure TMainForm.btnObjectClick(Sender: TObject);
var
inObj: InParameter;
outObj: OutParameter;
begin
inObj := InParameter.Create;
inObj.intField := 1;
inObj.stringField := 'a';
outObj := FServer.Call('objectParamterCall', [inObj]) as OutParameter;
JSDialogs.ShowMsg('intField: ' + SysUtils.IntToStr(outObj.intField) +
#13#10'stringField: ' + outObj.stringField, 'objectParamterCall');
end;
end. |