- - PR -
Tomcatスタートアップ時にクラスを起動させるには
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-13 21:51
Java初心者です。
現在、Tomcatを利用してJavaの勉強をしているのですが、 Tomcatのスタートアップ時に、自分で作成したクラスを 起動するように設定したいのですが、出来るのでしょうか? xmlの設定(?)だけでしょうか? ご存知の方がいましたら、ご教授お願いします。 | ||||
|
投稿日時: 2004-10-13 22:35
漠然すぎる質問で皆さん回答に困るでしょうね。
「自分で作成したクラス」とは一体どう言ったものでしょうか? また、「起動」とは具体的にどのような状態を想定していますか? そもそも、「Tomcatを利用してJavaの勉強」の辺りからして 怪しいのですが、Tomcatについての理解は大丈夫ですか? | ||||
|
投稿日時: 2004-10-13 22:45
おかもとさん。
質問、漠然としてますかね? 「自分で作成したクラス」 「起動」 ⇒なんでもいいです。 例えば、Test.class中にmain関数が存在し、System.out.println("test") こんなのを記述していると思ってください。 Tomcat起動時に上記ログが出力できればいいのですが。 分からないから質問してるんであって、理解してたら質問しませんよ。 | ||||
|
投稿日時: 2004-10-13 23:23
最初からこれを書いていたらおかもとさんも漠然としてるとは書かなかったでしょう。 たんに起動させたいだけならtomcatの起動スクリプトなりなんなりにそのように書けばよいでしょう。そうすればtomcatの起動と同時に実行されます。 その代わり上記のクラスの実行はtomcatとは別のプロセスのVM上で動きますよ。つまりtomcatとはなんの関連ももちません。 | ||||
|
投稿日時: 2004-10-14 00:10
xmlまでできているなら、トムチャット起動後に、プラウザのアドレスバーに、動かしたいクラス(サーブレットでしょうか?)か、あるいはそのフロントエンジン(jspなど)の場所をいれてやればいいと思います。例えば、http://localhost:8080/xxxx/xxxx
サーブレットなら最後はxmlで指定したクラス名。 | ||||
|
投稿日時: 2004-10-14 00:43
なんらかの初期化を一度だけ行いたいということですよね?
たとえば WebLogic であれば起動クラスというのを設定できます。 http://edocs.beasys.co.jp/e-docs/wls/docs81/ConsoleHelp/startup_shutdown.html Tomcatにそのような機能がないのであればサーブレットのinitメソッドで代用してはいかがでしょうか? 必要な初期化処理を書いたサーブレットを<load-on-startup>要素を指定してweb.xmlに登録しておけばWebアプリケーションのデプロイ時に自動的に実行されます。 もちろんアプリケーションを再デプロイすればもう一度実行されてしまいますが。 別のアプローチとしてはTomcatのmainメソッドを呼び出す自前のクラスを用意する方法があります。 順序に依存がなければTomcatに呼ばれるんでもTomcatを呼び出すのでも一緒でしょう。 | ||||
|
投稿日時: 2004-10-14 09:11
なんらかの編集可能なWebアプリケーションが配備されているという前提が必要ですが、
WebアプリケーションにServletContextListenerを登録して、 Webアプリケーションの初期化が終わった直後に処理を行うという方法があります。 「Tomcatの起動時」とは若干意味が異なりますが、それでよければ。 ServletContextListenerの使い方は、検索すれば見つかります。 [ メッセージ編集済み 編集者: koe 編集日時 2004-10-14 09:17 ] | ||||
|
投稿日時: 2004-10-14 09:34
ちょっと書き方が悪かったようです。
Javaの勉強をしようとする人が、その実行環境としてTomcatを 選択することに疑問が有ったので、「Tomcatについての理解」を 確認したのです。ASPやCGIに詳しい方ならTomcat -> Javaと言う 入り方でも良いですが、そうでないのならスタンドアロンで動く Javaアプリケーションを作るのが先だろうと思います。 いずれにせよ、りゅうさんがどの程度理解しているのか、Tomcatで動くServlet、 JSPを作ったことが有るのか?によって、皆さんの回答も変わってくると思います。 |