• Eclipse中创建CORBA测试程序


    Eclipse中创建CORBA测试程序

    1、在Eclipse里面新建java项目,Project lauyout 选择Create separate source and output folders

    2、右击项目名,选择buildpath—>configure build path,在弹出的的对话框点击add external jar按钮,

    找到OpenOrb/OpenORB/lib目录下:openorb_orb-1.4.0.jar    openorb_orb_tools-1.4.0.jar      

    OpenOrb/OpenORB/lib/endorsed目录下:openorb_orb_omg-1.4.0.jar      

    OpenOrb/tools/lib目录下launcher.jar    tools-1.4.0.jar       

    OpenOrb/tools/lib/目录下所有.jar文件,全部添加到项目中,确定。

    3.src上右键New--->Other--->CORBA Wizard--->IDL files--->Simple IDL

    4.右击IDL文件—>ORB Menu--->Compile,对IDL文件进行编译, 把生成的MyServer包移动到src目录下

    5.src上右键New--->Other--->CORBA Wizard--->Server--->Active object map--->Next

    在弹出的对话框里IDL filename栏选择/{projectName}/src/{IDLname}.idl

    Interface栏选择IDL文件里定义的接口名 
    Package栏里填写包名

    Server classname栏里填写服务端类名 

    --->Next—>在弹出的对话框,选中Create server class项 

    6.为生成的服务端类添加未实现的方法,并填写方法体(一定要实现,不然会报错)

    7.src 上右键New--->Other--->CORBA Wizard--->Client--->Simple implementation

    在弹出的对话框里IDL filename栏选择/{projectName}/src/{IDLname}.idl

    Interface栏选择IDL文件里定义的接口名

    Package栏里填写包名

    Client classname栏里填写客户端类名

    8.在客户端类的main方法里,取消注释test.getORBInterface().operation1("A message in the bottle..."); 并修改传递的String内容

    9.在Server_AOM.java上右击,run as—>java application,运行服务端程序,然后同样的方法运行客户端程序MyServiceClientImpl.java,可以看到输出结果 

    如果,你要将你的程序包发布到别的机器上,就要用到名称服务,使用名称服务,我们需要在java代码上作些修改:  使用名称空间的配置: 

    1.找到并注释服务端Server_AOM.java里main方法的下列代码: 

    PrintWriter ps = new PrintWriter(new FileOutputStream(new File("server.ior"))); 

    ps.println(orb.object_to_string(obj)); ps.close(); 

    取消下列代码(位置在上面代码的上方)的注释: 

    // org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService"); 

    // NamingContextExt nc = NamingContextExtHelper.narrow(ncobj); 

    // nc.bind(nc.to_name("MyServerObject"), obj); 

    修改bind方法为rebind  并引入新的类 

    2.找到并注释客户端MyServiceClientImpl.java里main方法的下列代码:

      LineNumberReader input = new LineNumberReader(new FileReader("server.ior")); 

    String ior = input.readLine(); 

    org.omg.CORBA.Object obj = orb.string_to_object(ior); 

    取消下列代码(位置在上面代码的上方)的注释: 

     // org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService"); 

    // NamingContextExt nc = NamingContextExtHelper.narrow(ncobj); 

    // org.omg.CORBA.Object obj = nc.resolve_str("MyServerObject"); 

    引入新的类  修改org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");里面的参数,服务端Server_AOM.java也要改。 

    改为"corbaloc::1.2@hostname:portNumber/NameService"  修改resolve_initial_references方法为string_to_object  修改所有异常为Exception 

    3.用命令行的方式,在OpenOrb/NamingService/bin目录下执行ins -ORBPort=portNumber 

    4.带参数 -ORBInitRef NameService=corbaloc::1.2@hostname:portNumber/NameService 运行服务端Server_AOM.java,  然后运行客户端程序MyServiceClientImpl.java,结果是一样的。 

  • 相关阅读:
    WebView(网页视图)基本用法
    Android——ProgressBar(进度条)
    第一阶段任务
    第七周学习总结
    (HDU)1095 --A+B for Input-Output Practice (VII)(输入输出练习(VII))
    (HDU)1094 --A+B for Input-Output Practice (VI)(输入输出练习(VI))
    (HDU)1093 --A+B for Input-Output Practice (V)(输入输出练习(V))
    (HDU)1092 --A+B for Input-Output Practice (IV)(输入输出练习(IV))
    (HDU)1091 --A+B for Input-Output Practice (III)(输入输出练习(III))
    (HDU)1090 --A+B for Input-Output Practice (II)(输入输出练习(II))
  • 原文地址:https://www.cnblogs.com/hewenwu/p/3723078.html
Copyright © 2020-2023  润新知