2010-12-18 132 views
2

我需要識別我的方法的調用者。所以我想打印堆棧跟蹤。不幸的是,我們的系統與CORBA接口,內置,所以如果我打印堆棧跟蹤我看到水木清華這樣的:使用CORBA時打印堆棧跟蹤

at net.mycompany.MyClass.MyMethod(Stream.java:124) 
    at net.mycompany.corba.MyCORBAInterface.IDLStream64POA._invoke(Unknown Source) 
    at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:299) 
    at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:602) 
    at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:745) 

我如何識別真正的訪問者?

+0

所以你想知道調用corba接口的遺留客戶端方法嗎?我不認爲java堆棧跟蹤可以顯示。 – CoolBeans 2010-12-18 13:09:22

回答

2

通常,在CORBA中不可能知道調用者的調用堆棧 - 調用者甚至可能不會用Java編寫。

你有兩個選擇:

  1. 讓例外傳播回客戶端。在CORBA中有一個擴展來支持Java調用堆棧的傳播。如果JacORB支持這一點,並且客戶端能夠解釋它,則可能會在客戶端獲得一些合理的回溯。
  2. JacORB有extension for tracing,您可能想使用它。