⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testclient.java

📁 Jboss s J2EE Sample
💻 JAVA
字号:
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package transaction.client;

import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject; 
import javax.transaction.UserTransaction; 

import transaction.interfaces.AccountData;
import transaction.interfaces.BankData;
import transaction.interfaces.BankSession;
import transaction.interfaces.BankSessionHome;
import transaction.interfaces.Constants;
import transaction.interfaces.CustomerData;
import transaction.interfaces.TellerSession;
import transaction.interfaces.TellerSessionHome;

public class TestClient {

   public static void main(String[] args){
      try {
         InitialContext lContext = new InitialContext();
         
         Object lObject = lContext.lookup( "ejb/bank/BankSession" );
         BankSessionHome lBankHome = (BankSessionHome)
            PortableRemoteObject.narrow( lObject, BankSessionHome.class );
         BankSession lBankSession = lBankHome.create();
         // Create Bank
         BankData lBank = lBankSession.createBank( "Test", "1234 Test Avenue, Test City" );
         // Create a Teller
         lObject = lContext.lookup( "ejb/bank/TellerSession" );
         TellerSessionHome lTellerHome = (TellerSessionHome)
            PortableRemoteObject.narrow( lObject, TellerSessionHome.class );
         TellerSession lTeller = lTellerHome.create();
         // Create a Customer
         CustomerData lCustomerA = lTeller.createCustomer( lBank.getId(), "Andreas Schaefer", 100 );
         // Get its Checking Account
         AccountData lCheckingAccountA = lTeller.getAccount( lCustomerA.getId(), Constants.CHECKING );
         // Create s Savings Account
         AccountData lSavingsAccountA = lTeller.createAccount( lCustomerA.getId(), Constants.SAVING, 250 );
         // Transfer 125 from Savings to Checking Account
         lTeller.transfer( lSavingsAccountA.getId(), lCheckingAccountA.getId(), 125 );
         // Create second Customer
         CustomerData lCustomerB =  lTeller.createCustomer( lBank.getId(), "Marc Fleury", 500 );
         // Get its Checking Account
         AccountData lCheckingAccountB =  lTeller.getAccount( lCustomerA.getId(), Constants.CHECKING );
         // Now get User Transaction from JNDI Server
         UserTransaction lTransaction = (UserTransaction) lContext.lookup( "UserTransaction" );
         
         // Start the transaction
         lTransaction.begin();
         try {
            // Withdraw money from Andreas
            lTeller.withdraw( lCheckingAccountA.getId(), 165 );
            // Deposit on Marc
            lTeller.deposit( lCheckingAccountB.getId(), 165 );
            // Finallize the transaction by commiting it
            // If the transaction is marked for roll bank it will throw
            // an exception which rolls back the transaction at last
            lTransaction.commit();
         }
         catch( Exception e ) {
            // In any case of an exception roll back the transaction
            lTransaction.rollback();
         }
      } catch( Exception e ){
         e.printStackTrace();
      }
   }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -