1.文件IDL:
/*Message.idl*/
module gmit
{
interface Message
{
string GetMessage();
oneway void shutdown();
};
};
//CMD 下运行: idlj -fall Message.idl
生成文件夹 gmit, 以及gmit下文件
Message.java
MessageHelper.java
MessageHolder.java
MessageOperations.java
MessagePOA.java
_MessageStub.java
2.编写服务器端
在gmit目录下 创建文件
/*MessageImpl.java*/
package gmit;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA.*;
public class MessageImpl extends MessagePOA
{
private ORB orb ;
public void setORB( ORB orbValue)
{
this.orb = orbValue ;
}
public String GetMessage()
{
return "hello from huan " ;
}
public void shutdown()
{
orb.shutdown(false);
}
}
/*MessageServer.java*/
package gmit;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.* ;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA.*;
public class MessageServer
{
public static void main(String[] args ) throws Exception
{
ORB orb = ORB.init(args , null );
//get the reference to the POA and activate the POA manager
POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA")) ;
rootPOA.the_POAManager().activate();
//Create the remote Object and register it with the orb
MessageImpl messageImpl = new MessageImpl() ;
//get object ref from the remote object
org.omg.CORBA.Object ref = rootPOA.servant_to_reference(messageImpl);
Message href = MessageHelper.narrow(ref);
//get the root Naming context
org.omg.CORBA.Object objectRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objectRef) ;
//Bind the object
String name = "DSMessage" ;
NameComponent path[] = ncRef.to_name(name);
ncRef.rebind(path, href );
//start orb and wait
System.out.println("MessageServer ready...!");
orb.run();
}
}
3.编写客户端
/*MessageClient.java*/
package gmit ;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.* ;
public class MessageClient
{
public static void main(String[] args) throws Exception
{
//create the initialise the orb
ORB orb = ORB.init(args, null );
//Get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef) ;
//Get a handle on the remote Ojbect
Message message = MessageHelper.narrow(ncRef.resolve_str("DSMessage"));
//Invoke remote methods
System.out.println(message.GetMessage());
System.out.println("Object ref :" + message);
message.shutdown();
}
}
5.运行客户端 和 服务器端。
1. javac gmit\*.java
2.
(main window)
>>start
(window 1)
>> orbd -ORBInitialPort 1050 -ORBInitialHost localhost
(main window)
>>start
(window 2)
>>java gmit.MessageServer -ORBInitialPort 1050 -ORBInitialHost localhost
(main window)
>>start
(window 3)
>>java gmit.MessageClient -ORBInitialPort 1050 -ORBInitialHost localhost
看到结果:
hello from huan
Object ref :IOR:000000000000001549444c3a676d69742f4d6573736167653a312e3000000000
000000010000000000000086000102000000000c31302e32382e312e3230330004b3000000000031
afabcb0000000020c3f2ef9d00000001000000000000000100000008526f6f74504f410000000008
00000001000000001400000000000002000000010000002000000000000100010000000205010001
0001002000010109000000010001010000000026000000020002
分享到:
相关推荐
Java搭建corba服务端,客户端的例子。
Corba的例子,BCB6开发的,配置IP,等
一个corba程序的简单例子,用VisiBroker实现的
Java EJB与CORBA交互的例子源代码,为LoggerHome对象提供一个ORB和一个corbaname URL,在服务器上记录一个简单的字符串信息,在名字上下文中查询由corbaname URL指向的LoggerHome对象,执行一个安全的downcast,创建...
演示了如何在java平台使用corba
简单的CORBA应用例子,指导迅速掌握corba的基本运用,实现跨语言,跨平台的应用集成
网上总结例子,可以正确运行,bin目录下带有简单启.bat动服务。
EJB与CORBA的交互例子,及源代码,代码内有一个处理日志信息打印的类、一个格式化的字符串用于显示信息类、在构造函数中获取当前的日期和时间类等。
windown 环境下,使用vc使用cobar进行编程的学习资料。包括开发环境搭建 cobar 工具安装 系统环境变量配置 ...CORBA服务端开发例子学习 CORBA客户端开发例子学习 如何编写编译IDL文件 建立cobar运行环境
CORBA 例子 这是一个简单的例子,它实现了客户端程序读取服务器端的时间功能。
有一个介绍corba的ppt和一个用java和corba编程的例子.对初学corba的人很有帮助
自己用c++builder编写的corba的一个小例子。
c++ builder corba 例子cpp
java实现CORBA,最基础的例子,可以参考
用CORBA实现银行账户管理的简单例子,可以实现帐户余额查询、取款和存款操作。
C++ 开发的CORBA Client/Server调用EJB说明 内有例子 1.指导如何使用idl,idl文件具体学习请下载我另一个学习材料 http://download.csdn.net/detail/mac_cf/5848801 2.生成C++stub文件 3.调用代码,参考OP_...
corba 对象引用获取最简单的方式就是通过对象字符串。本资源是关于对象引用获取的一个简单的例子。
CORBA编程培训材料,并附带例子。包括CORBA的命名,事件服务。
自己写的一个Java的Corba的简单的应用的例子。
分别介绍RMI,分布式对象与CORBA,动态接口,CORBA客户端开发的课件,以及相关的例子