转JAVA、CORBA版HelloWorld程序
来源:互联网 发布:淘宝号怎么升级3心 编辑:程序博客网 时间:2024/05/21 16:24
实现步骤: A 编写编译IDL接口 B 编写编译服务端程序 C 编写编译客户端程序 D 运行
实现详解:
1 编写IDL接口HelloWorld.idl:
module sample{
interface HelloWorld{
string sayHello();
};
};
2 编译IDL接口:C:/xxf/aaron/study/corba>idlj –fall HelloWorld.idl
编译结果生成sample包,生成下述文件
_HelloWorldStub.java
HelloWorld.java
HelloWorldHelper.java
HelloWorldHolder.java
HelloWorldOperations.java
HelloWorldPOA.java
3 编写服务端程序:HelloWorldServer.java
import sample.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.CORBA.portable.*;
import org.omg.PortableServer.*;
class HelloWorldServant extends HelloWorldPOA {
public String sayHello() {
return "/nHello World!/n";
}
}
public class HelloWorldServer {
public static void main(String args[]) {
try {
//Initialize CORBA
ORB orb = ORB.init(args, null);
org.omg.CORBA.Object poaobj = orb.resolve_initial_references(
"RootPOA");
org.omg.PortableServer.POA rootPOA = org.omg.PortableServer.
POAHelper.narrow(poaobj);
org.omg.PortableServer.POAManager manager = rootPOA.the_POAManager();
//New Servant
HelloWorldServant objRef = new HelloWorldServant();
HelloWorld obj = objRef._this(orb);
//Binding
NamingContext ncRef = NamingContextHelper.narrow(
orb.resolve_initial_references("NameService"));
NameComponent nc = new NameComponent("HelloWorld", "");
NameComponent path[] = {nc};
ncRef.rebind(path, obj);
//Run
manager.activate();
System.out.println("HelloWorld is running!");
orb.run();
} catch (Exception e) {
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
}
}
4 编写客户端程序: HelloWorldClient.java
import sample.*;
import org.omg.CosNaming.*;
import org.omg.CORBA.*;
public class HelloWorldClient {
public static void main(String args[]) {
try {
ORB orb = ORB.init(args, null);
org.omg.CORBA.Object objRef = orb.resolve_initial_references(
"NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);
NameComponent nc = new NameComponent("HelloWorld", "");
NameComponent path[] = {nc};
HelloWorld helloWorld = HelloWorldHelper.narrow(ncRef.resolve(path));
String hello = helloWorld.sayHello();
System.out.println(hello);
} catch (Exception e) {
/* System.out.println("ERROR : " + e);
e.printStackTrace(System.out);*/
e.printStackTrace();
}
}
}
5 运行
启动名字服务器:C:/xxf/aaron/study/corba>tnameserv -ORBInitialPort 1050
启动服务端程序:C:/xxf/aaron/study/corba>java HelloWorldServer -ORBInitialPort 1050
启动客户端程序:C:/xxf/aaron/study/corba>java HelloWorldClient -ORBInitialPort 1050
输出:Hello World!
- 转JAVA、CORBA版HelloWorld程序
- JAVA、CORBA版HelloWorld程序
- C++、CORBA版HelloWorld程序
- C++、CORBA版HelloWorld程序
- JAVA版CORBA程序1——HelloWorld
- CORBA版HelloWorld
- CORBA版HelloWorld
- CORBA版HelloWorld
- 使用java实现基于corba的helloworld
- JAVA版CORBA程序2——Counter
- Corba入门程序(Java --- C)---omniORB
- java rmi helloworld程序
- Java之helloworld程序
- Java Corba
- java corba
- 第一个JAVA程序 helloworld
- HelloWorld--JAVA程序
- 第一个JAVA程序HelloWorld
- 集线器实现宽带共享
- .net面试题收集(一)
- 《vc++深入详解》读书笔记
- 中岛美嘉 一色
- .net面试题收集(二)
- 转JAVA、CORBA版HelloWorld程序
- jSeamless - 基于java的UI抽象
- .net面试题收集(三)
- 情有千千劫,有感于程序编码的质量(一)
- jsp+ajax
- .net面试题收集(四)
- Java 学习笔记 (9) - Java 事件机制 内部匿名类的应用
- 北京市国民经济和社会发展第十一个五年计划发展纲要
- datagrid里的checkbox单选