0
다음 빈에 대해 널 포인트 예외 및 호출 대상 예외가 발생합니다. 이 프로그램은 기본적으로 입금 및 출금을 잔액에서 테스트하고 거래 ID를 포함합니다. 클라이언트 코드에서 예외가 발생합니다. 단지 간단한 은행 거래를 테스트자바 빈 널 포인트 예외 및 호출 대상 예외
import BankBeanRemotePkg.BankBeanRemote;
import javax.ejb.Stateful;
import java.math.BigDecimal;
import java.util.Random;
import javax.ejb.Remote;
import javax.interceptor.Interceptors;
/**
*
* @author Aneel
*/
@Stateful
@Remote(BankBeanRemotePkg.BankBeanRemote.class)
@Interceptors(BankBeanPkg.BankCallBacks.class)
public class BankBean implements BankBeanRemote {
private BigDecimal balance;
@Override
public BigDecimal initial() {
BigDecimal initialbal = new BigDecimal("0.00");
return initialbal.setScale(2, BigDecimal.ROUND_UP);
}
@Override
public BigDecimal Current() {
return balance.setScale(2, BigDecimal.ROUND_UP);
}
@Override
public int Deposit(BigDecimal amt) {
BigDecimal updatedBal = amt.add(balance);
balance = updatedBal;
Random randomGenerator = new Random();
int randomID = randomGenerator.nextInt(1000);
return randomID;
}
@Override
public int Withdraw(BigDecimal amt) {
BigDecimal updatedBal = balance.subtract(amt);
balance = updatedBal;
Random randomGenerator = new Random();
int randomID = randomGenerator.nextInt(1000);
return randomID;
}
}
클라이언트 코드는 다음과 같습니다
import BankBeanRemotePkg.BankBeanRemote;
import java.math.BigDecimal;
public class BankClient {
private static BankBeanRemote bankBean;
public BankClient (String[] args) {
}
public static void main(String[] args) {
BankClient client = new BankClient(args);
client.test();
}
public void test(){
try {
BigDecimal initial = bankBean.initial();
System.out.println("Initial Balance:" + initial);
BigDecimal deposit = new BigDecimal("5.00");
int transactionid = bankBean.Deposit(deposit);
System.out.println("Deposit amt:" + deposit + "Transaction ID:" + transactionid);
BigDecimal balance = bankBean.Current();
System.out.println("Current Balance:" + balance);
BigDecimal withdraw = new BigDecimal("3.00");
int transactionid2 = bankBean.Withdraw(withdraw);
System.out.println("Withdraw amt:" + withdraw + "Transaction ID:" + transactionid2);
System.out.println("Current Balance:" + balance);
} catch (Exception ex) {
System.err.println("Caught an unexpected exception!");
}
}
}
사람이 내 코드를 해결할 수있는 방법을 알아?
감사
NPE에 스택 추적을 추가해야합니다. 나는 그것이'bankBean'에서 오는 것 같아요. 이 실행에서'bankBean'이 null이되지 않는 이유는 무엇입니까? – mkobit