2012-05-01 70 views
3

如何在經典的JNDI查找後通過RMI/IIOP調用EJB StatelessBean方法時在服務器端獲取客戶端IP地址?如何在JBoss遠程EJB調用中獲取客戶端IP地址?

在JBoss 6.1中,我嘗試了方法java.rmi.server.RemoteServer#getClientHost,但它拋出java.rmi.server.ServerNotActiveException: not in a remote call。有什麼方法可以獲取信息嗎?

+0

它呢?它被指定爲返回一個主機名或拋出'ServerNotActiveException'。由於JBoss Remoting不使用java.rmi,所以我期望它能夠完成後者。 – EJP

+0

你是對的。與同事溝通不暢。我已經更新了這個問題。 –

+0

那麼簡短的答案是你不能。你當然不能使用這種方法。它適用於RMI/JRMP,並且您正在使用RMI/IIOP。 CORBA中可能會有某種東西會告訴你,但我從來沒有見過它。 – EJP

回答

2

它仍然嵌入在JBoss 6.1的線程中嗎?

String currentThreadName = Thread.currentThread().getName(); 

然後從那裏解析?

+0

是的。謝謝,這可能是一種方式。確實,我的問題是關於JBoss,但是我的代碼也必須在WebSphere上部署......所以我會很欣賞更便攜的選項。 –

相關問題