Create the client program

The Ant project for the component

The Ant project is located in the subdirectory samples/tutorial/java-corba. Source for the client is in Arith.java in the subdirectory client-src/com/sybase/easerver/tutorials/java/client.

This is a simple command-line application that:

Here is the source for Arith.java:

//package com.sybase.easerver.tutorials.java.client;

/**
 * This is a sample command-line Java application that 
 * invokes the JavaArithmetic component created in the EAServer
 * CORBA/Java component tutorial. Usage:
 * <pre>
 *    Arith iiop://<host>:<port>
 *
 *    Where:
 *
 *       <host> is the host name or IP address of the server machine. 
 *
 *       <iiop-port> is the server's IIOP port (2000 in the
 *         default configuration).
 *</pre>
 */

import org.omg.CORBA.*;
import SessionManager.*;
import Tutorial.*;  // Package for EAServer stub classes

public class Arith {

    static public final String compName = "javatut/JavaArithmetic";

    static public void main(String options[]) {
 
        String _usage = "Usage: Arith iiop://<host>:<port>\n";
        String _ior = null;

	try {

	    if (options.length >= 1)
	    {
		_ior = options[0];
	    }
	    else
	    {
		System.out.println(_usage);
                return;
	    }

    	    //
	    // Initialize the CORBA client-side ORB and 
	    // obtain a stub for the EAServer component instance.
	    //
	    System.out.println("... Creating session.");

	    //
	    // Initialize the ORB.
    	    //
	    java.util.Properties props = new java.util.Properties();
	    props.put("org.omg.CORBA.ORBClass", "com.sybase.CORBA.ORB");
	    ORB orb = ORB.init(options, props);

	    //
	    // Create an instance of the EAServer SessionManager::Manager 
	    // CORBA IDL object.
	    //

	    Manager manager = ManagerHelper.narrow(orb.string_to_object(_ior));

	    //
	    // Create an authenticated session with user "Guest" and password
	    // "GuestPassword2".
	    // 
	    Session session = manager.createSession("Guest", "GuestPassword2");

	    System.out.println("... Creating component instance.");

	    //
	    // Create a stub object instance for the 
	    // Tutorial/JavaArithmetic EAServer component.
	    //
	    JavaArithmetic comp = 
		  JavaArithmeticHelper.narrow(
			session.create(compName));

	    if (comp == null)
	    {
	      System.out.print("ERROR: Null component instance. ");
	      System.out.print(
	"Verify that the component " + compName +
	"exists and that it implements the " + 
	"Tutorial::JavaArithmetic IDL interface.");
	      return;
	    }

	    System.out.println("... Created component instance.");
    
            // 
            // Invoke the multiply method.
            //
    	    System.out.println("... Multiplying:\n");
	    double m1 = 3.1;
	    double m2 = 2.5;
            double result = comp.multiply(m1, m2);
	    System.out.println("    " + m1 + "*" + m2 + "=" + result);

        // Explicitly catch exceptions that can occur due to user error,
        // and print a generic error message for any other CORBA system 
        // exception.

        } catch ( org.omg.CORBA.COMM_FAILURE cfe)
	{
	    // The server is not running, or the specified URL is
	    // wrong. 
  	    System.out.println(
	       "Error: could not connect to server at " + _ior + "\n"
             + "Make sure the specified address is correct and the "
             + "server is running.\n\n" + _usage );
	} catch ( org.omg.CORBA.OBJECT_NOT_EXIST cone )
        {
            // Requested object (component) does not exist.
            System.out.println(
               "Error: CORBA OBJECT_NOT_EXIST exception. Check the "
             + "server log file for more information. Also verify "
             + "that the " + compName
             + "component has been created properly. \n"); 

        } catch (org.omg.CORBA.NO_PERMISSION npe) {
   	    // Login failed, or the component requires an authorization role 
	    // that this user is not a member of.
            System.out.println("Error: CORBA NO_PERMISSION exception. "
                             + " Does the Guest account exist and have"
                             + " you set the password to match this example"
                             + " code?");
             npe.printStackTrace();

   	} catch (org.omg.CORBA.SystemException se)
	{
            // Generic CORBA exception
	    System.out.println(
	       "Received CORBA system exception: " 
	       + se.toString() );
	    se.printStackTrace();
	}

        return;
    } // main()

}


StepsCompiling the client application

  1. Compile the application source using the component Ant project, specifying the client target. For example, on Windows

    set DJC_HOME=D:\Sybase\eas60
    cd %DJC_HOME%\samples\tutorial\java-corba
    build client
    

    Or, if running UNIX with C shell:

    setenv DJC_HOME /opt/Sybase/eas60
    cd $DJC_HOME/samples/tutorial/java-corba
    build client
    

    The build script or batch file runs the EAServer djc-ant command, which invokes Ant on the default build file, build.xml in the current directory.