----------------------------------------------------------------------------------
IDL
----------------------------------------------------------------------------------
module CalciApp
{
interface Calci
{
void Calculator();
oneway void shutdown();
};
};
-------------------------------------------------------------------------------------------------
Server
-------------------------------------------------------------------------------------------------
import CalciApp.*;
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 CalciImpl extends CalciPOA
{
private ORB orb;
publicvoid setORB(ORB orb_val)
{
orb = orb_val;
}
publicvoid Calculator()
{
System.out.print("Calculator Starts....");
}
publicvoid shutdown()
{
orb.shutdown(false);
}
}
publicclass CalciServer
{
publicstaticvoid main(String args[])
{
try
{
ORB orb = ORB.init(args, null);
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
CalciImpl calciImpl = new CalciImpl();
calciImpl.setORB(orb);
org.omg.CORBA.Object ref = rootpoa.servant_to_reference(calciImpl);
Calci href = CalciHelper.narrow(ref);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "Calci";
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println("Calci Server ready and waiting ...");
orb.run();
}
catch (Exception e)
{
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
System.out.println("Calci Server Exiting ...");
}
}
-------------------------------------------------------------------------------------------------
Client
-------------------------------------------------------------------------------------------------
import CalciApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.awt.Graphics;
import java.awt.*;
publicclass CalciApplet extends java.applet.Applet
{
TextField t1;
Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bp,bm, bml, bd, be, bst;
int m=0;
int op=0;
publicvoid init()
{
t1=new TextField(20);
b0=new Button("0");
b1=new Button("1");
b2=new Button("2");
b3=new Button("3");
b4=new Button("4");
b5=new Button("5");
b6=new Button("6");
b7=new Button("7");
b8=new Button("8");
b9=new Button("9");
bp=new Button("+");
bm=new Button("-");
bml=new Button("*");
bd=new Button("/");
be=new Button("=");
bst=new Button("AC");
add(t1);
add(b0); add(b1); add(b2); add(b3);
add(b4); add(b5); add(b6); add(b7);
add(b8); add(b9); add(bp); add(bm);
add(bml); add(bd); add(be); add(bst);
t1.setText("0");
try
{
ORB orb = ORB.init(this, null);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContext ncRef = NamingContextHelper.narrow(objRef);
NameComponent nc = new NameComponent("Calci", "");
NameComponent path[] = {nc};
Calci calciRef = CalciHelper.narrow(ncRef.resolve(path));
calciRef.Calculator();
}
catch(Exception e)
{
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
}
public boolean action(Event e1, java.lang.Object o1)
{
if(e1.arg.equals("0"))
t1.setText(t1.getText()+"0");
if(e1.arg.equals("1"))
t1.setText(t1.getText()+"1");
if(e1.arg.equals("2"))
t1.setText(t1.getText()+"2");
if(e1.arg.equals("3"))
t1.setText(t1.getText()+"3");
if(e1.arg.equals("4"))
t1.setText(t1.getText()+"4");
if(e1.arg.equals("5"))
t1.setText(t1.getText()+"5");
if(e1.arg.equals("6"))
t1.setText(t1.getText()+"6");
if(e1.arg.equals("7"))
t1.setText(t1.getText()+"7");
if(e1.arg.equals("8"))
t1.setText(t1.getText()+"8");
if(e1.arg.equals("9"))
t1.setText(t1.getText()+"9");
if(e1.arg.equals("+"))
{
m=Integer.parseInt(t1.getText());
t1.setText("0");
op=0;
}
if(e1.arg.equals("-"))
{
m=Integer.parseInt(t1.getText());
t1.setText("0");
op=1;
}
if(e1.arg.equals("*"))
{
m=Integer.parseInt(t1.getText());
t1.setText("0");
op=2;
}
if(e1.arg.equals("/"))
{
m=Integer.parseInt(t1.getText());
t1.setText("0");
op=3;
}
if(e1.arg.equals("="))
{
switch(op)
{
case 0:
m=m+Integer.parseInt(t1.getText());
break;
case 1:
m=m-Integer.parseInt(t1.getText());
break;
case 2:
m=m*Integer.parseInt(t1.getText());
break;
case 3:
m=m/Integer.parseInt(t1.getText());
break;
}
t1.setText(String.valueOf(m));
}
if(e1.arg.equals("AC"))
t1.setText("0");
returntrue;
}
}
-------------------------------------------------------------------------------------------------
Applet (HTML File)
-------------------------------------------------------------------------------------------------
<HTML><HEAD>
<TITLE>Java IDL Getting Started: Running Calculator Applet</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1 ALIGN=CENTER>Running the Calculator Applet</H1>
<HR><P>If all goes well, the applet appears below:<P>
<APPLET CODE=CalciApplet.class WIDTH=500 HEIGHT=300>
<PARAM name="org.omg.CORBA.ORBInitialHost"value=localhost>
<PARAM name="org.omg.CORBA.ORBInitialPort"value=1050>
</APPLET>
</BODY>
</HTML>