Batch files

setup.bat


set WEBLOGICHOME=d:\weblogic4.5 set classpath=%WEBLOGICHOME%\classes;%WEBLOGICHOME%\lib\weblogicaux.jar;. set path=d:\jdk1.2.2\bin;%PATH% call "C:\Program Files\Microsoft Visual Studio\VC98\BIN\Vcvars32"

make.bat

@echo off
rem Makefile

echo Building ...
call idltojava corbaEJB.idl
javac -d %WEBLOGICHOME%\classes corbaEJB\*.java
javac -d %WEBLOGICHOME%\classes CorbaClient.java
javac -d %WEBLOGICHOME%\classes -classpath %CLASSPATH%;%WEBLOGICHOME%\classes\ejb_basic_statelessSession.jar TraderServer.java

goto end

:end

runclient.bat

set CP=%WEBLOGICHOME%\classes;%WEBLOGICHOME%\lib\weblogicaux.jar;.
java -cp %CP% corbaEJB.CorbaClient -ORBInitialPort 900

runORB.bat

start tnameserv -ORBinitialPort 900

runServer.bat

set CP=%WEBLOGICHOME%\classes;%WEBLOGICHOME%\lib\weblogicaux.jar;.
start java -cp %WEBLOGICHOME%\classes\ejb_basic_statelessSession.jar;%CP% corbaEJB.Tra


corbaEJB.idl


module corbaEJB
{
    struct TradeResult
    {
        long numberTraded;
        double priceSoldAt;
    };

    interface Trader;

    interface TraderHome
    {
        Trader create();
        void remove();
    };

    interface Trader
    {   
        TradeResult buy(in string customerName, in string stockSymbol, in long shares);
        TradeResult sell(in string customerName, in string stockSymbol, in long shares);        
        TraderHome getEJBHome();
        void remove();
    };
};


CorbaClient.java

package corbaEJB;

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

public class CorbaClient
{
    public static void main(String args[])
    {
        String customerName = "Erin"; 

        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("TraderHome", " ");

            NameComponent path[] = {nc};

            TraderHome brokerage = TraderHomeHelper.narrow(ncRef.resolve(path));
                  
            Trader trader = brokerage.create();

            String stockName;
            int    numberOfShares;

            double cashBalance = 0.0;

            for (int i = 1 ; i <= 5; i++) 
            {
                System.out.println("Start of Transaction " + i + " for " + customerName);

                stockName      = "WEBL";
                numberOfShares = 100 * i;

                System.out.println("Buying " + numberOfShares + " of " + stockName);
                TradeResult tr = trader.buy(customerName, stockName, numberOfShares);

                System.out.println("...Bought " + tr.numberTraded + " at $" + 
                                   tr.priceSoldAt);
    
                cashBalance = cashBalance - (tr.numberTraded * tr.priceSoldAt);

                stockName      = "INTL";
                numberOfShares = 100 * (i+1);

                System.out.println("Selling " + numberOfShares + " of " + stockName);
                tr = trader.sell(customerName, stockName, numberOfShares);

                System.out.println("...Sold " + tr.numberTraded + " at $" + 
                                   tr.priceSoldAt);

                cashBalance = cashBalance + (tr.numberTraded * tr.priceSoldAt);
 
                System.out.println("Change in Cash Account: $" + cashBalance);
 
                System.out.println("End of Transaction " + i + "\n");
            }

            System.out.println("Change in Cash Account: $" + cashBalance + "\n");

            System.out.println("Removing trader");
            trader.remove();
        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }  
    }
}

TraderServer.java

package corbaEJB;

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

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

            TraderHomeServant traderRef = new TraderHomeServant();

            orb.connect(traderRef);

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

            NamingContext ncRef = NamingContextHelper.narrow(objRef);

            NameComponent nc = new NameComponent("TraderHome", " ");

            NameComponent path[] = {nc};

            ncRef.rebind(path, traderRef);

            java.lang.Object sync = new java.lang.Object();

            synchronized(sync)
            {
                sync.wait();
            }
      
        } 
        catch (Exception e) 
        {
            e.printStackTrace(System.out);
        }  
    }
}

class TraderServant extends _TraderImplBase
{
    private examples.ejb.basic.statelessSession.Trader   trader = null;
    private corbaEJB.TraderHome                          home = null;

    public TraderServant(examples.ejb.basic.statelessSession.Trader trader, corbaEJB.TraderHome home)
    {
        this.trader = trader;
        this.home = home;
    }

    public TradeResult buy(String customerName, String stockSymbol, int shares)
    {
        try
        {
            examples.ejb.basic.statelessSession.TradeResult tr = trader.buy(customerName, stockSymbol, shares);
        
            return new TradeResult(tr.numberTraded, tr.priceSoldAt);
        }
        catch (Exception e)
        {
            // throw a CORBA exception?
        }

        return null;
    }

    public TradeResult sell(String customerName, String stockSymbol, int shares)
    {
        try
        {
            examples.ejb.basic.statelessSession.TradeResult tr = trader.sell(customerName, stockSymbol, shares);
        
            return new TradeResult(tr.numberTraded, tr.priceSoldAt);
        }
        catch (Exception e)
        {
            // throw a CORBA exception?
        }

        return null;
    }

    public void remove()
    {
        try
        {
            trader.remove();
            trader = null;
        }
        catch (Exception e)
        {
            // throw a CORBA exception?
        }
    }

    public corbaEJB.TraderHome getEJBHome()
    {
        return home;
    }
}

class TraderHomeServant extends _TraderHomeImplBase
{
    private static String             ctxFactoryName   = "weblogic.jndi.T3InitialContextFactory";
    private static String             url              = "t3://localhost:7001";

    private examples.ejb.basic.statelessSession.TraderHome   home     = null;

    public TraderHomeServant()
    {
        super();
    }
 
    public Trader create()
    {
        setup();

        try
        {
            TraderServant trader = new TraderServant(home.create(), null);
            return trader;
        }
        catch (Exception e)
        {
            // throw a CORBA exception?
        }
        
        return null;
    }

    public void remove()
    {
        try
        {
            home = null;
        }
        catch (Exception e)
        {
            // throw a CORBA exception?
        }
    }

    private void setup()
    {
        if (home != null)
            return;

        try
        {
            javax.naming.Context context = getInitialContext(null, null, url);

            home = (examples.ejb.basic.statelessSession.TraderHome) context.lookup("statelessSession.TraderHome");
        }
        catch (Exception e)
        {
            e.printStackTrace();
            // throw a CORBA exception?
        }
    }

    public static javax.naming.Context getInitialContext(String user, String password, String url) throws Exception
    {
        java.util.Properties p = new java.util.Properties();
        p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, ctxFactoryName);
        p.put(javax.naming.Context.PROVIDER_URL, url);

        if (user != null)
        {
            p.put(javax.naming.Context.SECURITY_PRINCIPAL, user);

            if (password == null)
                password = "";

            p.put(javax.naming.Context.SECURITY_CREDENTIALS, password);
        }

        System.out.println("returning IntialContext");
        
        return new javax.naming.InitialContext(p);
    }
}

Hosted by www.Geocities.ws

1