<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE之巔

     

    Orbacus名字服務(wù)的使用

    Orbacus IONA 提供的開源 COBRA 實現(xiàn),但其相關(guān)技術(shù)文檔去很不詳盡,而且還有錯誤,以下是以舉例的方式說明了如何使用其提供的名字服務(wù)。

    1 啟動名字服務(wù)

    java -Dooc.orb.oa.endpoint="iiop --port 9998" -classpath OBNaming.jar;OB.jar com.ooc.CosNaming.Server

    其中通過 ooc.orb.oa.endpoint="iiop --port 9998" 設(shè)置服務(wù)的端口

    2 服務(wù)器段代碼:

    import helloorb.Hello;

    import helloorb.Hello_Impl;

    ?

    import org.omg.CosNaming.NameComponent;

    import org.omg.CosNaming.NamingContextExt;

    import org.omg.CosNaming.NamingContextExtHelper;

    ?

    import com. ooc .CORBA.ORB;

    import com.ooc.OBPortableServer.POA;

    import com.ooc.OBPortableServer.POAHelper;

    import com.ooc.OBPortableServer.POAManager;

    ?

    public class ByNamingServer {

    ??? public static void main(String[] args) {

    ?????? java.util.Properties props = System.getProperties();

    ?????? props.put( "org.omg.CORBA.ORBClass" , "com.ooc.CORBA.ORB" );

    ?????? props.put( "org.omg.CORBA.ORBSingletonClass" ,

    ????????????? "com.ooc.CORBA.ORBSingleton" );

    ?

    ?????? org.omg.CORBA.ORB orb = null ;

    ?????? try {

    ?????????? orb = ORB.init(args, props);

    ?

    ?????????? org.omg.CORBA.Object poaObj = null ;

    ?????????? try {

    ????????????? poaObj = orb.resolve_initial_references( "RootPOA" );

    ?????????? } catch (org.omg.CORBA.ORBPackage.InvalidName ex) {

    ????????????? throw new RuntimeException();

    ?????????? }

    ?????????? POA rootPOA = POAHelper.narrow(poaObj);

    ?????????? org.omg.PortableServer.POAManager manager = rootPOA

    ????????????????? .the_POAManager();

    ?

    ?????????? org.omg.CORBA.Object obj = null ;

    ?????????? try {

    ????????????? String nameService= "corbaloc::127.0.0.1:9998/NameService" ;

    ????????????? obj = orb.string_to_object(nameService);

    ?????????? } catch (Exception ex) {

    ????????????? ex.printStackTrace();

    ????????????? throw new RuntimeException();

    ?????????? }

    ?

    ?????????? if (obj == null ) {

    ????????????? throw new RuntimeException();

    ?

    ?????????? }

    ?????????? NamingContextExt nc = null ;

    ?????????? try {

    ????????????? ?Hello_Impl helloImpl = new Hello_Impl();

    ?????????? ???? Hello hello = helloImpl._this(orb);

    ?????????? ???? NameComponent[] a2Name = new NameComponent[1];

    ?????? ???????? a2Name[0] = new NameComponent();

    ?????????? ????? a2Name[0]. id = "HelloServer" ;

    ?????????? ????? a2Name[0]. kind = "" ;

    ????????????? nc = NamingContextExtHelper.narrow(obj);

    ????????????? nc.rebind(a2Name, hello);

    ????????????? manager.activate();

    ?????????? } catch (Exception ex) {

    ????????????? ex.printStackTrace();

    ????????????? throw new RuntimeException();

    ?????????? }

    ?????? } catch (Exception e1) {

    ?????????? e1.printStackTrace();

    ?????? }

    ??? }

    }

    ?

    3 客戶端代碼

    import org.omg.CosNaming.NameComponent;

    import org.omg.CosNaming.NamingContextExt;

    import org.omg.CosNaming.NamingContextExtHelper;

    ?

    import helloorb.Hello;

    import helloorb.HelloHelper;

    ?

    ?

    public class ByNamingClient {

    ??? public static void main(String args[]) {

    ?????? java.util.Properties props = System.getProperties();

    ?????? props.put( "org.omg.CORBA.ORBClass" , "com.ooc.CORBA.ORB" );

    ?????? props.put( "org.omg.CORBA.ORBSingletonClass" ,

    ????????????? "com.ooc.CORBA.ORBSingleton" );

    ?

    ?????? int status = 0;

    ?????? org.omg.CORBA.ORB orb = null ;

    ?

    ?????? try {

    ?????????? orb = org.omg.CORBA.ORB.init(args, props);

    ?????????? status = run(orb);

    ??????????

    ?????? } catch (Exception ex) {

    ?????????? ex.printStackTrace();

    ?????????? status = 1;

    ?????? }

    ?

    ?????? if (orb != null ) {

    ?????????? try {

    ????????????? orb.destroy();

    ?????????? } catch (Exception ex) {

    ????????????? ex.printStackTrace();

    ????????????? status = 1;

    ?????????? }

    ?????? }

    ?

    ?????? System.exit(status);

    ??? }

    ?

    ??? static int run(org.omg.CORBA.ORB orb) {

    ?????? org.omg.CORBA.Object obj = null ;

    ??? /*? try {

    ?????????? String refFile = "Hello.ref";

    ?????????? java.io.BufferedReader in = new java.io.BufferedReader(

    ????????????????? new java.io.FileReader(refFile));

    ?????????? String ref = in.readLine();

    ?????????? obj = orb.string_to_object(ref);

    ??????????

    ?????? } catch (java.io.IOException ex) {

    ?????????? ex.printStackTrace();

    ?????????? return 1;

    ?????? }*/

    ?????? try {

    ?????? obj = orb.string_to_object( "corbaloc::127.0.0.1:9998/NameService" );

    ?????? NamingContextExt nc = NamingContextExtHelper.narrow(obj);

    ??? /*? ? NameComponent[] a2Name = new NameComponent[1];

    ??? ???????? a2Name[0] = new NameComponent();

    ?????? ????? a2Name[0].id = "HelloServer";

    ?????? ????? a2Name[0].kind = "";*/

    ??????

    ?????? Hello hello = HelloHelper.narrow(nc.resolve_str( "HelloServer" ));

    ?????? hello.say_hello();

    ?????? } catch (Exception e){

    ?????????? e.printStackTrace();

    ?????? }

    ?????? return 0;

    ??? }

    }

    posted on 2006-11-19 22:02 超越巔峰 閱讀(1769) 評論(3)  編輯  收藏 所屬分類: CORBA

    評論

    # re: Orbacus名字服務(wù)的使用 2007-09-14 00:19 ucs_2008

    推薦一款功能強大的Corba模擬器UCS...不用不知道,用了才說妙...

    Download site:
    http://sourceforge.net/projects/ucs

    UCS (Ultra Corba Simulator) is one more powerful corba client/servant simulator tool than other similar products(e.g. Telcopro's MtSim, or OpenFusion's Corba Explorer, or eaiBridge's CAST). It doesn't need idl-related helper class or IR service  回復(fù)  更多評論   

    # re: Orbacus名字服務(wù)的使用 2009-11-24 23:04 fbin

    java -Dooc.orb.oa.endpoint="iiop --port 9998" -classpath OBNaming.jar;OB.jar com.ooc.CosNaming.Server
    為什么我在命令行下,出錯呢  回復(fù)  更多評論   

    # re: Orbacus名字服務(wù)的使用 2009-11-24 23:05 fbin

    Exception in thread "main" java.lang.NoClassDefFoundError: com/ooc/CosNaming/Server  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品美女久久久久99小说| 亚洲国产成人久久三区| 日韩免费高清大片在线| 亚洲女人影院想要爱| 免费在线观看黄色毛片| 男女午夜24式免费视频| 亚洲中文字幕无码av永久| 亚洲国产精品丝袜在线观看| 18级成人毛片免费观看| 美女尿口扒开图片免费| 久久精品国产亚洲AV香蕉| 四虎永久成人免费影院域名| 少妇太爽了在线观看免费视频 | 亚洲人成人一区二区三区| 最新猫咪www免费人成| 少妇性饥渴无码A区免费 | 亚洲酒色1314狠狠做| 在线观看免费亚洲| 无码一区二区三区免费| 色欲aⅴ亚洲情无码AV| 91嫩草私人成人亚洲影院| 免费成人黄色大片| 日韩精品无码区免费专区| 你懂的网址免费国产| 亚洲AV综合色区无码一二三区| 亚洲综合一区二区精品导航| 亚洲精品人成无码中文毛片| 成全视频在线观看免费高清动漫视频下载| 国产真人无码作爱免费视频| 久久水蜜桃亚洲AV无码精品| 亚洲精品国产福利片| 亚洲午夜国产精品无码| 一本色道久久88综合亚洲精品高清| 亚洲国产精品成人AV无码久久综合影院 | 亚洲狠狠婷婷综合久久久久 | 亚洲AV无码国产精品麻豆天美| 国产亚洲精品免费| 扒开双腿猛进入爽爽免费视频| 少妇太爽了在线观看免费视频| 中文字幕免费人成乱码中国| 老司机午夜性生免费福利|