现在在EaServer上发布了一个组件,用idl2pas将IDL转换成_c和_i文件,在Delphi客户端里加入这两个文件.通过客户端程序访问EaServer上的这个组件.客户端代码如下:
Function TForm1.ConnectCorbaServer: Boolean;
var
s: String;
Root_OBJ: CorbaObject;
Root_OBJPROXY:ORBPAS30.ObjectProxy;
ORBProxy1:ORBProxy;
begin
Result := False;
//s := GetIORFromFile(IORFile);
s:='IOR:010000001F00000049444C3A53657373696F6E4D616E616765722F4D616E616765723'
+'A312E30000002000000000000001A0000000101000009000000756A732D32303035000028'
+'23020000004D000000F0FAFA0A0100000001';
try
//ORBProxy1.String_T
bject(PChar(Pointer(s)),Root_OBJPROXY);
//SaveToLog('*****************开始联接服务器**********************');
//SaveToLog('开始时间:'+GetNowTime);
Memo1.Lines.Add('*****************开始联接服务器**********************');
except
Memo1.Lines.Add('Proxy连接失败。请重新连接。');
Exit;
end;
Try
Root_Obj := Orb.StringToObject(s);
//SaveToLog(GetNowTime+'IOR文件转换成功。');
Memo1.Lines.Add('IOR文件转换成功。');
Except
//SaveToLog(GetNowTime+'IOR文件转换失败。请重新连接。');
Memo1.Lines.Add('IOR文件转换失败。请重新连接。');
Exit;
end;
Root_Obj
Memo1.Lines.Add(Root_Obj._RepositoryId);
Try
Acct := Tn_corba_testHelper.Narrow(Root_Obj,true);
if Acct = nil then
begin
//SaveToLog(GetNowTime+'RootContext获取失败。请重新连接。');
Memo1.Lines.Add('RootContext获取失败。请重新连接。');
Exit;
end;
//SaveToLog(GetNowTime+'RootContext获取成功。');
Memo1.Lines.Add('RootContext获取成功。');
Except
//SaveToLog(GetNowTime+'RootContext获取失败。请重新连接。');
Memo1.Lines.Add('RootContext获取失败。请重新连接。');
Exit;
end;
Try
//if not LoadAllSerivce(Acct) then
Exit;
Except
Exit;
end;
Result := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ConnectCorbaServer;
end;
无法找到该EaServer上的组件,请高手指点指点.