SimpleStocks.idl
****************
module SimpleStocks
{
interface StockMarket
{
float get_price(in string symbol);
};
};
StockMarketImpl.java
********************
import org.omg.CORBA.*;
import SimpleStocks.*;
public class StockMarketImpl extends _StockMarketImplBase
{
public float get_price(String symbol)
{
float price;
price =1;
for(int i=0;i
price +=(int)symbol.charAt(i);
}
price=price/5;
return price;
}
public StockMarketImpl()
{
super( );
}
}
StockMarketServer.java
***********************
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import SimpleStocks.*;
public class StockMarketServer
{
public static void main(String args[])
{
try
{
ORB orb =ORB.init(args,null);
StockMarketImpl s=new StockMarketImpl();
orb.connect(s);
org.omg.CORBA.Object objRef=orb.resolve_initial_references("NameService");
NamingContext ncRef=NamingContextHelper.narrow(objRef);
NameComponent nc=new NameComponent("NASDAQ","");
NameComponent path[]={nc};
ncRef.rebind(path,s);
System.out.println("The stock market server is up and ready");
Thread.currentThread().join();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
StockMarketClient.java
**********************
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import SimpleStocks.*;
public class StockMarketClient
{
public static void main(String args[])
{
try
{
ORB orb =ORB.init(args,null);
org.omg.CORBA.Object objRef=orb.resolve_initial_references("NameService");
NamingContext ncRef=NamingContextHelper.narrow(objRef);
NameComponent nc=new NameComponent("NASDAQ","");
NameComponent path[]={nc};
StockMarket market =StockMarketHelper.narrow(ncRef.resolve(path));
System.out.println("Price of Nasdaq's share is $"+market.get_price("NASDAQ"));
}
catch(Exception e)
{
e.printStackTrace();
}}}
OUTPUT:
D:\java_pgm>path=%path%;c:\jdk1.3\bin
D:\java_pgm>idltojava -fno-cpp SimpleStocks.idl
D:\java_pgm>cd SimpleStocks(this is the name of the module)
D:\java_pgm\SimpleStocks>javac *.java
Note: _StockMarketImplBase.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
D:\java_pgm\SimpleStocks>javac -d _StockMarketImplBase.java
D:\java_pgm\SimpleStocks>cd..
D:\java_pgm>javac StockMarketImpl.java
D:\java_pgm>javac StockMarketServer.java
D:\java_pgm>javac StockMarketClient.java
D:\java_pgm>tnameserv
Initial Naming Context:
IOR:000000000000002849444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578743a312e3000000000010000000000000050000101000000000a31323
72e302e302e3100089e00000018afabcafe00000002b84c36a90000000800000000000000000000000100000001000000140000000000010020000000000001010000000000
TransientNameServer: setting port for initial object references to: 900
Ready.
*******************************************************************************************************************
D:\java_pgm>path=%path%;d:\jdk1.3\bin
D:\java_pgm>java StockMarketServer
The stock market server is up and ready
*******************************************************************************************************************
D:\java_pgm> path=%path%;d:\jdk1.3\bin
D:\java_pgm>java StockMarketClient
Price of Nasdaq's share is $88.2