Java Tutorial

 
 
 
 
----------------------------------------------------------------------------------
                    IDL
----------------------------------------------------------------------------------
module MyString
{
   interface StringOp
   {
    string revstr(in string strMyString);
    oneway void shutdown();
   };
};

-------------------------------------------------------------------------------------------------
                    Server
-------------------------------------------------------------------------------------------------

import MyString.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import java.util.Properties;

class stringImpl extends StringOpPOA
{
    private ORB orb;
    public void setORB(ORB orb_val)
    {
        orb = orb_val;
    }
    public String revstr(String strMyString)
    {
        String strMyString1;
        StringBuffer temp = new StringBuffer(strMyString);
        temp.reverse();
        strMyString1 = temp.toString();
        if((strMyString.equals(strMyString1)) == true)
        {
            return(\"Palindrom\");
        }
        else
        {
            return(\"NotPalindrom\");
        }
    }
    public void shutdown()
    {
        orb.shutdown(false);
    }
}

class calcServer
{
    public static void main(String args[])
    {
        try
        {
            ORB orb = ORB.init(args,null);

            POA rootpoa = POAHelper.narrow(orb.resolve_initial_references(\"RootPoa\"));

            rootpoa.the_POAManager().activate();

            stringImpl objString = new stringImpl();

            objString.setORB(orb);

            org.omg.CORBA.Object ref = rootpoa.servant_to_reference(objString);
            StringOp href = StringOpHelper.narrow(ref);

            org.omg.CORBA.Object objRef = orb.resolve_initial_references(\"NameService\");

            NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

            NameComponent path[] = ncRef.to_name(\"calc\");
            ncRef.rebind(path,href);

            System.out.println(\"Server ready\");

            orb.run();
        }
        catch(Exception e)
        {
            System.out.println(e);
            e.printStackTrace();
        }
    }
}

-------------------------------------------------------------------------------------------------
                    Client
-------------------------------------------------------------------------------------------------

import MyString.*;
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;

class calcClient
{
    static StringOp stringImpl;
    public static void connect(ORB objOrb, org.omg.CORBA.Object objRef,NamingContextExt ncRef)
    {
        try
        {

            objRef = objOrb.resolve_initial_references(\"NameService\");
            ncRef = NamingContextExtHelper.narrow(objRef);
            stringImpl = StringOpHelper.narrow(ncRef.resolve_str(\"calc\"));
        }
        catch(Exception e)
        {
            System.out.println(e);
            e.printStackTrace();
        }

    }
    public static void main(String args[])
    {
        ORB objOrb=ORB.init(args, null);;
        org.omg.CORBA.Object objRef=null;
        NamingContextExt ncRef=null;
        connect(objOrb,objRef,ncRef);
        String s1 = \"Vidyadhar\",s2;
        s2 = stringImpl.revstr(s1);
        System.out.println(\"Original String is :==> \" + s1);
        System.out.println(\"Ans is :==> \" + s2);

        String s3 = \"nayan\",s4;
        s4 = stringImpl.revstr(s3);
        System.out.println(\"original String is :==> \" + s3);
        System.out.println(\"Ans is :==> \" + s4);

    }
}

-------------------------------------------------------------------------------------------------
                    Output
-------------------------------------------------------------------------------------------------

Original String is :==> Vidyadhar
Ans is :==> NotPalindrom

Original String is :==> nayan
Ans is :==> Palindrom