2010-12-18 136 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,您可能想使用它。