2009-10-15 46 views
0

我有一個相當複雜的服務器端應用程序,它經常要求我看看它的內部是如何進行調試和修復問題的。爲調試/遠程管理嵌入Java腳本語言的建議

因此,我嵌入了一個Beanshell實例,我可以telnet進入(通常通過SSH隧道),但我想知道是否有更好的方法。

一些限制:

  • 沒有readline的支持,我可以用「rlwrap」在telnet下得到解決,但它並不理想
  • 的變量和方法Tab鍵完成將是非常好的,但我還沒有找到一個辦法做到這一點
  • 預先定義的變量(訪問的東西,我需要經常訪問)似乎不工作,我必須預先定義的功能,而不是

所有-在所有它相當笨重,儘管Beanshell具有其超級Java集的優點,所以沒有人需要學習另一種編程語言來使用它。

我想知道如果別人有任何促進通過腳本語言(Beanshell或其他)進行遠程調試/管理的經驗,也許有人找到了更好的方法。

回答

1

我們的一個應用程序有一個BeanShell接口,它通過JMX和RMI + SSL連接到我們的應用程序。

在實際調用解釋器之前,通過調用Interpreter#set()確實可以預先定義變量。

除此之外,我同意你在「readline」類似的功能。有一個名爲java-readline(BSH顯然帶有一個插件的項目),旨在提供功能,但我沒有調查使用它。它還需要一個JNI庫。

我聽說人們使用Scala和Groovy來實現命令行客戶端,但到目前爲止,我不認爲用於嵌入解釋器的Scala API是標準化的。我也不相信他們支持你正在尋找的「readline」功能。