0

I have a fairly sophisticated server-side application which frequently requires me to see what is going on with its internals to debug and fix problems.

I've therefore embedded a Beanshell instance, which I can telnet into (normally over a ssh tunnel), but I'm wondering if there is a better way.

A few limitations:

  • No readline support, which I can get around by using 'rlwrap' on telnet, but its not ideal
  • Tab-completion of variables and methods would be really nice, but I haven't found a way to do this
  • Pre-defining variables (to access stuff I need to access frequently) doesn't seem to work, I have to pre-define functions instead

All-in-all its rather clunky, although Beanshell has the nice advantage that its a super-set of Java, so nobody needs to learn another programming language to use it.

I'm wondering if others have any experience with facilitating remote debugging/administration via a scripting language (Beanshell or otherwise), perhaps someone has found a better approach.

1 Answer 1

1

One of our application has a BeanShell interface that connects to our application over JMX with RMI+SSL.

You can indeed pre-define variables by calling Interpreter#set() before actually invoking the Interpreter.

Other than that, I agree with you on the "readline" like functionality. There is a project called java-readline (and BSH apparently ships with a plugin for it) that purports to provide functionality but I haven't investigated using it. It also requires a JNI library.

I've heard that people use Scala and Groovy to implement command line clients but as of now, I don't think the Scala API for embedding the interpreter is standardized yet. I also don't believe they support the "readline" features you're looking for.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.