2012-04-06 12 views
0

私はエンタープライズアプリケーションを作成しようとしていますが、非常に奇妙なエラーに直面しています。Java EE - Remote Facadeの呼び出し中にInvocationTargetExceptionが発生しましたか?

メイン以外のクラスからエンタープライズアプリケーションのファサードをコールしようとするたびに、私はInvocationTargetExceptionを取得します。

public class TellerMachine { 
    @EJB 
    private static BillerFacadeRemote billerFacade; 

    @EJB 
    private static AccountFacadeRemote accountFacade; 
    @EJB 
    private static CustomerFacadeRemote customerFacade; 
    @EJB 
    private static BanktellerFacadeRemote banktellerFacade; 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     TellerMachine tm = new TellerMachine(); 
     Scanner s = new Scanner(System.in); 
     String sssa = billerFacade.hiHAHAHAHA(); 
     System.out.println(sssa); 
     tm.printABC(); 
     TestClass t = new TestClass(); 
     t.abc(); 
    } 

    public void printABC() 
    { 
     String sssa = billerFacade.hiHAHAHAHA(); 
     System.out.println(sssa); 
    } 
} 

テストクラス: - - :BillerFacadeで

public class TestClass 
{ 
@EJB 
private static BillerFacadeRemote billerFacade; 
public static void main(String[] args) 
{ 

} 
public void abc() 
{ 
    try{ 
    String a = billerFacade.hiHAHAHAHA(); 
    System.out.println(a);} 
    catch(Exception e) 
    { 
     System.out.println(e.getCause().toString()); 
    } 
} 

} 

方法: -

@Override 
public String hiHAHAHAHA() { 
    return "abc"; 
} 

スタックトレース: - ここに

は私のコードです

Warning: /Users/varunbatra/Desktop/RealApp/SwinBankTellerMachine/dist/gfdeploy/SwinBankTellerMachine does not exist. 
abc 
abc 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:438) 
    at org.glassfish.appclient.client.AppClientFacade.main(AppClientFacade.java:165) 
Caused by: java.lang.NullPointerException 
    at swinbanktellermachine.TestClass.abc(TestClass.java:29) 
    at swinbanktellermachine.TellerMachine.main(TellerMachine.java:52) 
    ... 6 more 
Java Result: 1 

なぜそれはそうですか?そしていつか私はメインクラスからリモートメソッドを呼び出していますが、それでも私にはこの例外が与えられます。 Netbeansの問題は何ですか?時にはそれは時々動作しません。助けて私の混乱を解消してください。

+1

スタックは、InvoicationTargetExceptionがNPEによって引き起こされていると言います。そこから開始する必要があります。 – perissf

答えて

0

this stackoverflow discussionと参照されるEJB仕様によると、static注入は、アプリケーションメインクラスでのみ許可されています。したがって、あなたのTellerMachineクラスの注入は、 mainメソッドの中から呼び出されたTestClassインスタンスのためには機能しません。

関連する問題