咱們都知道,在pb的4GL頁面中,要想訪問EAServer上的pb組件是很方便,也是很簡單的,只要在頁面屬性的EAServer屬性頁上,定義個組件變量便可。java
但若是咱們是用普通的jsp頁面,或則咱們在寫beans,又或則咱們在寫Servlet,怎麼辦呢?jsp
下面就看看如何作吧。函數
一、正確建立組件,並生成Java stub!
二、建立一個jsp文件,注意,該文件必需要導入以下java包:
<%@ page import="org.omg.CORBA.ORB" %>
<%@ page import="org.omg.CosNaming.NamingContext" %>
<%@ page import="org.omg.CosNaming.NamingContextHelper" %>
<%@ page import="org.omg.CosNaming.NameComponent" %>
<%@ page import="org.omg.CORBA.ORB" %>
<%@ page import="you_pkg.*" %> it
<!--上面的那個import,實際是導入你的組件包下的全部組件,因此you_pkg應該是你的組件所在的包名稱-->
<@ page import=「CTS.PBUserException「%>
<%
String s1;
String s2;
n_you_com nvo; //你的組件類型的變量
java.util.Properties props = new java.util.Properties();
props.put(「org.omg.CORBA.ORBClass「, 「com.sybase.CORBA.ORB「);
props.put(「com.sybase.CORBA.NameServiceURL「, 「iiop://localhost:9000「);
ORB orb = ORB.init((String[]) null, props);
try
{
NamingContext context = NamingContextHelper.narro(orb.resolve_initial_references(「NameService「));
NameComponent[] name = { new NameComponent(「you_pkg/n_you_com「, "")};
SessionManager.Factory factory = SessionManager.FactoryHelper.narrow(context.resolve(name));
nvo = n_youcomHelper.narrow(factory.create(「jagadmin「, 「「));
//登陸EAServer的用戶名和密碼
}
catch (org.omg.CORBA.ORBPackage.InvalidName aException){}
catch(org.omg.CosNaming.NamingContextPackage.NotFound aException){}
catch(org.omg.CosNaming.NamingContextPackage.CannotProceed aExceptiont){}
catch(org.omg.ConNaming.NamingContextPackage.InvalidName aException){}
try
{
int rt = 0; //根據你的須要定義組件函數的返回值變量
rt = nvo.of_you_function(s1, s2); //你的組件函數
//有一點須要注意,若是你的組件函數參數中有Integer類型的變量,在這裏調用的時候
//必需要用short強制類型轉換,或則就定義一個short類型的變量傳遞參數
}
catch (CTS.PBUserException e){}
%>
好了,是否是很簡單呢!io