我有一个相当复杂的服务器端应用程序,经常要求我查看其内部的调试和修复问题。
因此我嵌入了一个Beanshell实例,我可以远程访问(通常通过ssh隧道),但我想知道是否有更好的方法。
一些限制:
我想知道其他人是否有通过脚本语言(Beanshell或其他方式)促进远程调试/管理的经验,也许有人找到了更好的方法。
答案 0 :(得分:1)
我们的一个应用程序有一个BeanShell接口,通过JMX与RMI + SSL连接到我们的应用程序。
在实际调用解释器之前,您可以通过调用Interpreter#set()来预先定义变量。
除此之外,我同意你的“readline”之类的功能。有一个名为java-readline的项目(BSH显然附带了一个插件),它声称提供功能,但我没有调查使用它。它还需要一个JNI库。
我听说人们使用Scala和Groovy来实现命令行客户端,但截至目前,我认为用于嵌入解释器的Scala API尚未标准化。我也不相信他们支持您正在寻找的“readline”功能。