📄 testclient.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 + -