- - PR -
Tomcat内のプログラムを外部から実行
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-21 22:24
Tomcat内に配置されているプログラムを、外部から実行する方法を探しています。
Tomcat内に有り、通常は画面から実行される機能を、 バッチ処理のような形でTomcatの外から実行する方法はあるのでしょうか。 理想としてはCRON等で定期的に実行。。というのがやりたいのですが、 自分の調べた限りでは、 ・ページに手動でアクセスする ・HTTPClientのようなプログラムを作り、定期的にアクセスをかける と言ったようなHTTP経由の方法しかなさそうでした。 Tomcatの機能、もしくは何かうまい方法がありましたら教えてください。 [環境] OS:RHEL4 Java:1.5 Tomcat5.23 | ||||
|
投稿日時: 2007-11-21 22:49
Tomcatにデプロイされているクラスにmainメソッドを書いて、
直接Javaコマンドで呼び出せばよいと思います。 Tomcatにデプロイされているアプリのステートに依存するのであれば、 無難な方法として、Httpでキックするのが楽かと思います。 特別なクライアントを使わなくても、java.net.URLクラスを使えば十分です。 クライアント自体も結局はmainメソッドを持つクラスになります。 コマンドならcronとwget辺りを組み合わせれば、 特別プログラムを作成する必要もないかと思います。 | ||||
|
投稿日時: 2007-11-21 23:00
作るならJMeterのような負荷テストツールを利用してはいかがでしょう? | ||||
|
投稿日時: 2007-11-21 23:36
tomcat内にどういうアプリケーションを置いているのかわからないので、MVCのservletということで。
先にmainがあるCUIアプリケーションを作って、それをservletから呼び出す方が簡単です。 そうするとHttpRequest、HttpResponseを使わないようになるので、servletはその仲介を行うようになります。 CUIをベースとして、webapp、swingで動くアプリケーションを開発したことがあります。 対象とするロジックがJSPとかにあると大変そうですね。 CUIを呼ぶとjavavmが別になるので、同期が必要だったりしたら、素直にHTTP経由で行います。 | ||||
|
投稿日時: 2007-11-22 13:21
Tomcat上でタイマーで定時的に呼ばれる処理を書くことも可能ですね。
| ||||
|
投稿日時: 2007-11-22 13:31
かつのり さん
GENZO さん Ray さん nagise さん 色々とアドバイスを頂き、有難うございますm(_ _)m 今回はTomcatのVM内で実行されているクラスの情報が必要になる処理ですので、 ・Tomcat内でタイマーを持つ ・wget他のコマンド・ツールで外からたたく を検討しようかと思います。 HttpClientか何かでプログラムを組まなきゃ、、 と思ってたんですが、良く考えたらwgetやtelnetでいいんですよね 大変参考になりました。 また何かありましたらよろしくお願いします |
1