0% found this document useful (0 votes)
83 views6 pages

EXP4: CORBA-IDL & Java Programming: Hello CORBA From IDL Steps To Create Hello CORBA From IDL Application

This document provides steps to create a "Hello CORBA" application using CORBA-IDL and Java programming. It involves: 1) Creating an IDL file defining the interface and compiling it. 2) Writing a server program that implements the interface and registers it with the ORB. 3) Writing a client program that looks up the object reference from the naming service and invokes methods on it. 4) Starting the ORB daemon and name service registry. 5) Running the server and then client programs.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views6 pages

EXP4: CORBA-IDL & Java Programming: Hello CORBA From IDL Steps To Create Hello CORBA From IDL Application

This document provides steps to create a "Hello CORBA" application using CORBA-IDL and Java programming. It involves: 1) Creating an IDL file defining the interface and compiling it. 2) Writing a server program that implements the interface and registers it with the ORB. 3) Writing a client program that looks up the object reference from the naming service and invokes methods on it. 4) Starting the ORB daemon and name service registry. 5) Running the server and then client programs.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

EXP4: CORBA-IDL & Java Programming: Hello CORBA from IDL Steps To Create Hello CORBA from IDL

Application
1) Create idl file Hello.idl which cretes helloapp folder after compilation module HelloApp { interface Hello { string sayHello(); oneway void shutdown(); }; }; Compile this program

2) Write Server program and compile it using javac with java files inside helloapp folder HelloServer.java ____________________________________________________________________ import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; import java.util.Properties; class HelloImpl extends HelloPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; }

// implement sayHello() method public String sayHello() { return "\nHello world !!\n"; } // implement shutdown() method public void shutdown() {

orb.shutdown(true); } } public class HelloServer { public static void main(String args[]) { try{ // create and initialize the ORB i ORB orb = ORB.init(args, null); // get reference to rootpoa & activate the POAManager POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); // create servant and register it with the ORB HelloImpl helloImpl = new HelloImpl(); helloImpl.setORB(orb); // get object reference from the servant org.omg.CORBA.Object ref = rootpoa.servant_to_reference(helloImpl); Hello href = HelloHelper.narrow(ref); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt which is part of the Interoperable // Naming Service (INS) specification. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // bind the Object Reference in Naming String name = "Hello"; NameComponent path[] = ncRef.to_name( name );

ncRef.rebind(path, href); System.out.println("HelloServer ready and waiting ..."); // wait for invocations from clients orb.run(); } catch (Exception e) { System.err.println("ERROR: " + e); e.printStackTrace(System.out); } System.out.println("HelloServer Exiting ..."); } } Compile this program

3) Write Client program and compile it HelloClient.java import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; public class HelloClient { static Hello helloImpl;

public static void main(String args[]) { try{ // create and initialize the ORB ORB orb = ORB.init(args, null); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt instead of NamingContext. This is // part of the Interoperable naming Service. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // resolve the Object Reference in Naming String name = "Hello"; helloImpl = HelloHelper.narrow(ncRef.resolve_str(name)); System.out.println("Obtained a handle on server object: " + helloImpl); System.out.println(helloImpl.sayHello()); helloImpl.shutdown(); } catch (Exception e) { System.out.println("ERROR : " + e) ; e.printStackTrace(System.out); } } }

Compile it Using following command

4)Start ORBD registry like RMI registry in rmi application it will open new window
start orbd -ORBInitialPort 1050 -ORBInitialHost localhost

5) RUN Server Program


java HelloServer -ORBInitialPort 1050 -ORBInitialHost localhost&

6) Run Client Program java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost

You might also like