コマンドラインから webapp の Java クラスにアクセスできるようにするコードを作成するにはどうすればよいでしょうか。
たとえば、コマンド ライン インターフェイスを備えた Java クラスがあり、webapp のコンテキストでコードを実行したり、DB にアクセスしたりできます。Tomcat で WARred アプリをホストしているマシンにログオンし、対話できるようにしたいです。
どこから探し始めるべきですか?
ありがとう
たまたまWARにバンドルされているクラスファイルを実行したいだけですか、それとも実際に実行中のWARインスタンスと対話したいですか?前者の場合、WARは通常のJarファイルであり、他のJarファイルと同じようにその中でクラスを実行できます。
実行中のWARと対話する場合は、JMXを確認することをお勧めします。
現在のすべてのJDK(少なくとも1.5以上)には、「無料」のJMXが付属しています。WARと対話するためのコマンドとして使用される小さなインターフェースクラスを作成するのは簡単です。
次に、JMXを介してWARに接続するコマンドラインプログラムを作成する必要があります。または、JConsole(JDKに付属していますがGUIです)などのツールを使用してインスタンスを操作できます。他にもJMXクライアントがあります。
それがどれも魅力的でない場合は、常にWebサービスがあります。
提案:コマンドラインインターフェイスクラスは、入力としてInputStreamを受け入れ、出力が書き込まれるOutputStream(System.outへの出力とSystem.inへの入力をハードコーディングすることはできません)を提供する必要があります。次に、特定のポートで接続をリッスンするサーバークラスを作成する必要があります。接続が確立されると、サーバーは接続からInputStreamを取得し、コマンドラインクラスに渡します。コマンドラインクラスは、書き込まれたデータが接続を確立したクライアントに渡されるOutputStreamを提供します。