0

問題をデバッグして修正するために、内部で何が起こっているのかを頻繁に確認する必要がある、かなり洗練されたサーバー側アプリケーションがあります。

そのため、Telnet で (通常は ssh トンネルを介して) 接続できる Beanshell インスタンスを組み込みましたが、もっと良い方法があるかどうか疑問に思っています。

いくつかの制限:

  • telnetで「rlwrap」を使用して回避できますが、理想的ではありません
  • 変数とメソッドのタブ補完は本当に素晴らしいですが、これを行う方法が見つかりませんでした
  • 変数の事前定義(頻繁にアクセスする必要があるものにアクセスするため)が機能しないようです。代わりに関数を事前定義する必要があります

Beanshell には Java のスーパーセットであるという優れた利点があるため、Beanshell を使用するために別のプログラミング言語を学ぶ必要はありません。

他の人がスクリプト言語 (Beanshell など) を介してリモート デバッグ/管理を容易にした経験があるかどうか疑問に思っています。おそらく誰かがより良いアプローチを見つけたのでしょう。

4

1 に答える 1

1

アプリケーションの 1 つには、RMI+SSL を使用して JMX 経由でアプリケーションに接続する BeanShell インターフェースがあります。

実際に Interpreter を呼び出す前にInterpreter#set()を呼び出すことで、変数を事前に定義できます。

それ以外は、「readline」のような機能については同意します。機能を提供すると主張するjava-readline(およびBSHには明らかにプラグインが同梱されている)と呼ばれるプロジェクトがありますが、私はそれを使用して調査していません。また、JNI ライブラリも必要です。

Scala と Groovy を使用してコマンド ライン クライアントを実装していると聞いたことがありますが、現時点では、インタープリターを埋め込むための Scala API はまだ標準化されていないと思います。また、あなたが探している「readline」機能をサポートしているとは思いません。

于 2009-10-15T15:26:39.717 に答える