| The CORBA demo uses the following two files to create the server: The package path diagram for the CORBA server files goes as:   
               javatech|
 |__ cor19
 |
 |__ 
                server
 |
 |__ 
                impl
 The code for the two server classes is shown here.   
              
                 
                  | Cor19Server.java |   
                  |  package 
                      javatech.cor19.server.impl;
 // import all the IDL-generated classes
 import javatech.cor19.server.*;
 
 // import required CORBA packages
 import org.omg.CORBA.*;
 import org.omg.CosNaming.*;
 import org.omg.CosNaming.NamingContextPackage.*;
 import org.omg.PortableServer.*;
 
 public class Cor19Server
 {
 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 
                      ns_ref =
 orb.resolve_initial_references 
                      ("NameService");
 
 // Use NamingContextExt 
                      which is part of the Interoperable
 // Naming Service specification.
 NamingContextExt ncRef 
                      = NamingContextExtHelper.narrow (ns_ref);
 
 // Get reference to 
                      rootpoa & activate the POAManager
 POA rootpoa =
 POAHelper.narrow 
                      (orb.resolve_initial_references ("RootPOA"));
 rootpoa.the_POAManager().activate();
 
 // Create Cor19Servant
 Servant servant = new 
                      Cor19Servant (orb, rootpoa);
 
 // Get the corresponding 
                      obj ref.
 org.omg.CORBA.Object 
                      obj_ref =
 rootpoa.servant_to_reference 
                      (servant);
 
 // Narrow to the Cor19Example 
                      interface.
 Cor19Example cor19 = 
                      Cor19ExampleHelper.narrow (obj_ref);
 
 // Put into the name 
                      server.
 String name = "Cor19";
 NameComponent[] path 
                      = ncRef.to_name (name);
 ncRef.rebind (path, 
                      cor19);
 
 // Wait for invocations 
                      from clients
 System.out.println (
 "Server 
                      launched, ready, and waiting on clients..."
 );
 orb.run();
 } // try
 catch (Exception e){
 System.err.println("ERROR: 
                      " + e);
 e.printStackTrace(System.out);
 }
 } // main
 } // class Cor19Server
 |   
              
                 
                  | Cor19Servant.java |   
                  | package 
                      javatech.cor19.server.impl;
 // import all the IDL-generated classes
 import javatech.cor19.*;
 import javatech.cor19.server.*;
 
 // import required CORBA packages
 import org.omg.CORBA.*;
 import org.omg.CosNaming.*;
 import org.omg.CosNaming.NamingContextPackage.*;
 import org.omg.PortableServer.*;
 
 public class Cor19Servant extends Cor19ExamplePOA
 {
 // These are not really needed in this example, 
                      but it is good
 // practice to keep a reference to the ORB and 
                      POA in the servant.
 private ORB fOrb;
 private POA fPoa;
 // Private variables for the huh and hah attributes 
                      from the IDL.
 private int fHuh;
 private float fHah = 3.1416f;
 
 /** Constructor. Receives a reference to the 
                      ORB and the POA. **/
 public Cor19Servant (ORB orb, POA poa) {
 fOrb = orb;
 fPoa = poa;
 } // ctor
 
 /** Readonly hah accessor method. **/
 public float hah () {
 return fHah;
 } // hah
 
 /** Getter method for huh. **/
 public int huh () {
 return fHuh;
 } // huh (getter)
 
 /** Setter method for huh. **/
 public void huh (int huh) {
 fHuh = huh;
 } // huh (setter)
 
 /** Implementation of method1. **/
 public void method1 (String s) {
 String cor19_con = COR19_CONSTANT.value;
 String server_con = SERVER_CONSTANT.value;
 System.out.println (s + "/" + cor19_con 
                      + "/" + server_con);
 } // method1
 
 /** Returns the sum of the input a and b parameters 
                      plus the constant
 * COR19_EXAMPLE_CONSTANT. **/
 public int add (int a, int b) {
 return a + b + Cor19Example.COR19_EXAMPLE_CONSTANT;
 } // add
 
 /** Implementation of the demo() method. Alters 
                      the contents of the
 * CustomData object within the CUstomDataHolder 
                      object. **/
 public void demo (CustomDataHolder cdh) throws 
                      Cor19UserException {
 CustomData cd = cdh.value;
 float some_float = cd.someFloatValue;
 int some_int = cd.someIntegerValue;
 cd.someFloatValue *= 2;
 cd.someIntegerValue *= 3;
 } // demo
 } // class Cor19Servant
 |      Most recent update: Oct. 13, 2005 |