• 締切済み

Linux上でのTomcatのServletプロセスについて。

ご質問があります。 TomcatのServletプロセスについて悩んでいます。 Miracle Linuxをサーバとして、Apache-Tomcatを連携させたWebアプリの構築をしてます。 ここでまず一つ質問なのですが、Tomcatを起動させた時点でjavaのプロセスが24個も上がるのですが、これは普通なことなのでしょうか?ちなみに、メモリ消費量は約800Mです。 また次に、Tomcat内のServletに対してPostする度にプロセス数が増加し、メモリ消費量も1プロセスにつき300Kも消費してしまいます。そのため、どんどんリソースを消費し、メモリリークを起こしてしまうのですが、なぜかガベージコレクタが作動せず、延々とプロセスが溜まったままの状態になってしまいます。 通常は、ServletにアクセスしたらTomcatが常駐させてるプロセスを使用すると思うのですが、どこがおかしいのか全く分かりません。 どなたか、小さな事でもいいので助言をください。 よろしくお願いします。

  • Java
  • 回答数9
  • ありがとう数24

みんなの回答

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.9

> この数を越えた場合はどうなってしまうんですか? 以下は,Tomcat 4.1 の設定についての説明です. HTTP/1.1 の場合 http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/coyote.html JK2 の場合 http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/jk2.html ここの,acceptCount のところに,その説明があります. (どちらも同じ内容です.) > Any requests received when the queue is full will be refused. キューが一杯の場合,受信されたリクエストはすべて拒否されます.

参考URL:
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/coyote.html
asamn777
質問者

お礼

待ち状態のリクエストも一杯になるとその後は拒否されるんですね。 参考資料まで教えていただきありがとうございます。 とりあえず、色々と教えて頂いたことをすべて確認してみます。都合上、時間がかかってしまうのですが、確認した際にはご報告させていただきます。 分かりにくい質問に、長い時間丁寧に答えて頂き本当にありがとうございます。

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.8

> たしかserver.xmlで設定でき、制限を越えた場合、待ち状態になりますよね? そうです. 待ち状態になるリクエストの最大数も設定できます.

asamn777
質問者

補足

>待ち状態になるリクエストの最大数も設定できます. この数を越えた場合はどうなってしまうんですか?

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.7

> Webからアクセスして一定の処理を終えると画面が返ってくるのは確認済みです。 HTTPクライアント側への応答が終了した後,まだ何か処理をしていて,すぐに Tomcat に制御を戻していないという可能性が考えられます. とにかく,きちんと doPost を終えているのか,この点を確認することだと思います. > スレッドの数は,同時に処理されるリクエストの数によって決まります. これについて補足ですが,最大のリクエストの数,とした方が,より正確かもしれません. あと,スレッドの数には設定された制限がありますから,際限なく増えるわけではないです. > あの、一応再度確認の意味でお聞きします。Linuxのスレッドはjavaのプロセス1つという事でよろしいですよね? はい.Linux のスレッドは,ほぼプロセスと同じものです. Javaの場合,Linux 上で,Javaのプログラム(ここではTomcat)がスレッドを1つ作ると,ps コマンド等からは,1つの java のプロセスとして見えます. > やはり同時アクセスなしで、プロセスが増えるのはおかしいですよね。。。 そうですね. 起動時に,一度に一定数のスレッドを作るのは別にして,その後,必要もないのにスレッドを増やすことはないので,何かの理由でスレッドが利用中のままである可能性が高いと思います.

asamn777
質問者

補足

>とにかく,きちんと doPost を終えているのか,この点を確認することだと思います. 分かりました。確認してみます。 >あと,スレッドの数には設定された制限がありますから,際限なく増えるわけではないです. たしかserver.xmlで設定でき、制限を越えた場合、待ち状態になりますよね? >何かの理由でスレッドが利用中のままである可能性が高いと思います. そうですね。。 スレッドやプロセスについては、SN1701さんのおかげでだいぶ理解できてきました。本当にありがとうございます。 ご指摘いただいた確認して見なければならない事は、事情によりすぐには実行できないのですが、必ず実行しますので遅くなってしまうかもしれませんが、その時はご報告させていただきます。

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.6

> 作りの問題というよりは、他の例えばTomcatやApacheの設定まわりをもう少し詳しくみた方が良さそうですね。 doPost の終了時にログに出力して,確認してみて,問題なかったのでしょうか.もしもそうなら,自分で作ったプログラム以外のところに原因を求めるしかないでしょうね. ただ,設定が原因でスレッドがたまるだけで再利用されなくなるというのは,ちょっと考えにくいのですが... せめて切り分けをするために,Tomcat 単体で動かしてみて,同じ現象が起きるかどうか試すところから始めた方がいいかもしれませんね. ただ,少なくとも私の環境では,Apache と連携してもこのような問題は起きていないのですが. > 先ほど常駐していたスレッドがこのBというservletの起動に使われるのでしょうか? スレッドのプールと servlet のインスタンスのプールは別の管理ですから,あるスレッドが特定の servlet 専用に使われるわけではありません. ですから,同じスレッドが servlet A の実行にも,servlet B の実行にも使われます. スレッドの数は,同時に処理されるリクエストの数によって決まります. ちなみに私の環境では,初期のスレッド数以上の同時アクセスをしない限り スレッドの数は一定です. > web.xmlに登録してないがためにスレッド起動時に新たに生成してしまうのでは 確かに,ちょっと考えにくいですね. 動作の点で違うのは,InvokerServlet という servlet を間に挟んで呼び出されることくらいです. 普通,呼び出される側の servlet から見て,動作が変わらないように実装されているはずです.

asamn777
質問者

補足

>doPost の終了時にログに出力して,確認してみて,問題なかったのでしょうか. すみません。今は事情によりソースを書き換える事ができない状態にありますので、まだこの確認はしていません。ただ、Webからアクセスして一定の処理を終えると画面が返ってくるのは確認済みです。 >せめて切り分けをするために,Tomcat 単体で動かしてみて,同じ現象が起きるかどうか試すところから始めた方がいいかもしれませんね. これも今すぐにできるわけではないのですが、問題解決の一要因として行ってみます。 >スレッドの数は,同時に処理されるリクエストの数によって決まります. すごい分かり易いですね!理解できました。ありがとうございます。 >ちなみに私の環境では,初期のスレッド数以上の同時アクセスをしない限り スレッドの数は一定です. そうですか。あの、一応再度確認の意味でお聞きします。Linuxのスレッドはjavaのプロセス1つという事でよろしいですよね? やはり同時アクセスなしで、プロセスが増えるのはおかしいですよね。。。

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.5

> 時間はかかりますがちゃんとレスポンスは戻ってきます。処理が終わってもTomcatに制御を返さない場合というのは起こりえるのでしょうか? ちょっと考えにくいですね.普通に作れば,処理が終わったのなら制御を返すはずです. ただし,時間がかかっていて処理が終わらないうちに,次のリクエストを受け取り,なおかつ利用可能なスレッドが残っていない場合,新しいスレッドが作られるでしょう. 毎回,確実に doPost を終えていて,同時に複数のリクエストを処理していないにも関わらず,次々スレッドが作られる場合は,別の原因を探す必要があるかもしれません. > 確か今回のservletはすべてweb.xmlに登録してなかった気がするのですが、もしその場合セキュリティ以外に何か不都合などありますか? InvokerServletを使っているんですよね. 基本的には,URLからServletにどうやってマッピングするか,その方法が違うだけですから,セキュリティ以外に特に不都合というものはないと思います. 気になるようでしたら,web.xml に登録して,試してみればよいと思います.

asamn777
質問者

補足

>毎回,確実に doPost を終えていて,同時に複数のリクエストを処理していないにも関わらず,次々スレッドが作られる場合は,別の原因を探す必要があるかもしれません. そうですか。作りの問題というよりは、他の例えばTomcatやApacheの設定まわりをもう少し詳しくみた方が良さそうですね。 ちょっと基本的な質問なんですが、あるアクセスによりAというservletが起動し、処理を終えたとします。この場合Aというservletのスレッドはメモリに常駐され、次に同じくAというservletを使うアクセスがきた場合、この常駐済みのスレッドを使いますよね? ここで、新たにBというservletを使うアクセスがきたとします。その場合、先ほど常駐していたスレッドがこのBというservletの起動に使われるのでしょうか? >InvokerServletを使っているんですよね. 基本的には,URLからServletにどうやってマッピングするか,その方法が違うだけですから,セキュリティ以外に特に不都合というものはないと思います. セキュリティ以外は関係ないんですね。 もしかしたら、web.xmlに登録してないがためにスレッド起動時に新たに生成してしまうのでは、という可能性もあるかなと思っていたのですが。違うみたいですね。

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.4

> バッファやキャッシュは、psコマンド等で見た場合、javaプロセスとして表示されるのでしょうか? ユーザモードの話ではないので,プロセスの一覧には出てきません. コマンドラインから,free -k としてみてください. キロバイト単位で,総メモリ量,使用メモリ量,使用可能メモリ量,バッファ,キャッシュのサイズ,加えて,バッファとキャッシュのサイズを,使用メモリ量と,使用可能メモリ量にプラス/マイナスした量が表示されます. > では、GCが動作したか否かを見るには、ソースに直接書き込んでログを吐かせる、という具合にするのがベストでしょうか? Runtime#freeMemory() を使えば,監視は出来ます.Runtime#totalMemory() の返す値も増える事がありますので,同時にモニタしなければなりません. プログラムに埋め込んでしまわなくても,プロファイラなどのツールを使って,ヒープのサイズや使用量を監視することもできます. 私は,開発にEclipseを使っていますが,Eclipse用のプロファイラとして,Eclipse Profiler というプラグインがあります. それには,ヒープサイズや使用量をモニタする機能があるので,それを使うことがあります. http://sourceforge.net/projects/eclipsecolorer/ > 同時アクセスでなく1回1回アクセスしてテストしてみたんですが、毎回スレッドを新たに上げてしまいますね。。 確かにアプリケーションの作りの問題の可能性はありますね. > スレッドがスタックしてしまい、利用中のままになってしまうような作り、というのは具体的にどのようにしたらそうなってしまうのでしょうか? 例えば,synchronized 等で,同期する箇所があったとして,それがデッドロックになっている場合が考えられます. ただ,同時アクセスはしていないということですので,自前でスレッドを作っているのでなければ,起こらないような気がしますが. 他にも,非常に時間がかかる処理があって,そこで止まっている場合も同じような状態になるでしょう. とにかく,doGetや,doPost が呼ばれた後,速やかに制御を返していない場合のすべてが該当します. doGetや,doPost の最初と最後で,ログにメッセージを出力し,Tomcatに確実に制御を返しているかどうか,確認してみるのがよいかもしれません. > 今回開発したWebアプリでは、フォーム毎にservletが起動する仕組みになっているので、実際servletの数はフォームの数に比例しているためかなりの数になっています。 > で、ビジネスロジックをほぼservletの中で行うようになっているのですが、この作りに問題がありそうですかね? 設計としてどうかという問題はともかく,その作り自体が,スレッドをスタックさせる直接的な原因になる可能性は低いと思います.

参考URL:
http://sourceforge.net/projects/eclipsecolorer/
asamn777
質問者

補足

free -kですね。 コマンド調べればよいことを聞いてしまいすみません。 プロファイラーはぜひ試してみます! synchronized は特に使っている箇所はないんですが、非常に時間のかかる処理をdoPostの中でやっているところもあります。その時間というのはデータ量によりまちまちなのではっきりとは言えないのですが。 ちなみにこの処理は、時間はかかりますがちゃんとレスポンスは戻ってきます。処理が終わってもTomcatに制御を返さない場合というのは起こりえるのでしょうか?とにかく一度ログで確認してみます。 >設計としてどうかという問題はともかく,その作り自体が,スレッドをスタックさせる直接的な原因になる可能性は低いと思います. つくりの事で言い忘れてたんですが、確か今回のservletはすべてweb.xmlに登録してなかった気がするのですが、もしその場合セキュリティ以外に何か不都合などありますか? よろしくお願いします。

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.3

> 全メモリ量からスレッド数分のメモリを消費しているように見えます。 ps コマンド等で見たとき,各スレッドのメモリ使用量がすべて同じになっていませんか? 同じメモリ空間について表示しているからで,実際はその1つ分だけの消費です. 全メモリ量についてですが,バッファやキャッシュに使用されている分も物理メモリ使用量にカウントされているので,それは引いて考えないといけません. ガーベージコレクタが動作していても,それは直接現れるわけではありません. たとえ,ガーベージコレクタが回収しても,常にOSに返すわけではないので,ps コマンド等から見たJVMのメモリ使用量が頻繁に変化するわけではありません. > 実際にはアクセスの度にスレッドを生成してしまい、常駐しているスレッドを使用してくれていないように見えてしまいます。これは、Webアプリの作りの問題でしょうか。 テストするときに,同時アクセスではなく,1回1回アクセスしてもそうなる場合,Webアプリケーションの問題である可能性はあります. Webアプリケーションの作りの問題で,スレッドがスタックしてしまい,利用中のままになってしまうと,スレッドの最大数に達しない限り,Tomcat は新しいスレッドを作ってそちらで処理しようとします. 一度増えると減りませんから,どんどんスレッドが増えるように見えるでしょう.

asamn777
質問者

補足

>ps コマンド等で見たとき,各スレッドのメモリ使用量がすべて同じになっていませんか? これについては今すぐ確認というのができませんので、後日確認してみます。 >全メモリ量についてですが,バッファやキャッシュに使用されている分も物理メモリ使用量にカウントされているので,それは引いて考えないといけません. バッファやキャッシュは、psコマンド等で見た場合、javaプロセスとして表示されるのでしょうか? >ガーベージコレクタが動作していても,それは直接現れるわけではありません. では、GCが動作したか否かを見るには、ソースに直接書き込んでログを吐かせる、という具合にするのがベストでしょうか? >テストするときに,同時アクセスではなく,1回1回アクセスしてもそうなる場合,Webアプリケーションの問題である可能性はあります. 同時アクセスでなく1回1回アクセスしてテストしてみたんですが、毎回スレッドを新たに上げてしまいますね。。 >Webアプリケーションの作りの問題で,スレッドがスタックしてしまい,利用中のままになってしまうと,スレッドの最大数に達しない限り,Tomcat は新しいスレッドを作ってそちらで処理しようとします. スレッドがスタックしてしまい、利用中のままになってしまうような作り、というのは具体的にどのようにしたらそうなってしまうのでしょうか? 今回開発したWebアプリでは、フォーム毎にservletが起動する仕組みになっているので、実際servletの数はフォームの数に比例しているためかなりの数になっています。 で、ビジネスロジックをほぼservletの中で行うようになっているのですが、この作りに問題がありそうですかね? よろしくお願いします。

  • SN1701
  • ベストアンサー率76% (16/21)
回答No.2

Linuxでは,スレッドはプロセスによって実現されています.ですから,Javaでスレッドを作った場合,ps コマンド等から見るとプロセスに見えます. つまり,24個あるというプロセスは,実はスレッドです. また,スレッド同士はメモリ空間を共有していますから,各スレッドの使用メモリ量を足しても意味がありません. http://japan.linux.com/kernel/internal22/node26.shtml http://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/processes.html > プロセスが溜まったままの状態 Tomcatは,アクセスがあったときに毎回スレッドを作るのではなく,一度スレッドを作ったら使い回しますので,スレッドの数は減るとは限りません.

参考URL:
http://japan.linux.com/kernel/internal22/node26.shtml
asamn777
質問者

補足

返事が遅くなりまして申し訳ありません。 >スレッド同士はメモリ空間を共有していますから,各スレッドの使用メモリ量を足しても意味がありません. psコマンドやLinuxのアプレットにてメモリ使用量を確認したのですが、全メモリ量からスレッド数分のメモリを消費しているように見えます。スレッドが24個もあるので、全体から見るとかなりのメモリを消費しているように見えるのですが。。。 >Tomcatは,アクセスがあったときに毎回スレッドを作るのではなく,一度スレッドを作ったら使い回しますので,スレッドの数は減るとは限りません. これは私もそう認識していたのですが。 実際にはアクセスの度にスレッドを生成してしまい、常駐しているスレッドを使用してくれていないように見えてしまいます。これは、Webアプリの作りの問題でしょうか。 よろしくお願いします。

  • mura333
  • ベストアンサー率42% (3/7)
回答No.1

>Tomcatを起動させた時点でjavaのプロセスが24個も上がるのですが、これは普通なことなのでしょうか? >ちなみに、メモリ消費量は約800Mです。 正直な話、ありえねー!って感じです。 >Tomcat内のServletに対してPostする度にプロセス数が増加し スレッドじゃなくて、プロセスですよね? やっぱりありえねー!です。 >小さな事でもいいので助言をください。 ほんとにアドバイスのみですが、以下のことを確認ください。 1.Apache連携しないで、Tomcatのみ(8080ポート)で動かしたらどうなりますか? 2.Tomcatの標準のWebアプリのみで起動したらどうですか? 以下は想像で書いています。 まずプロセスが上がるということは、Webアプリの中でRuntime.getRuntime().exec()を使って、Tomcatから更に別のjava VMを起動しているということはありませんか? 通常ガーベッジコレクタが動くのは、java VMの中のインスタンスのみです。従って、別プロセスで上がってしまったら、他人のVMまでは面倒みれません。 起動した本来のTomcatのjavaプロセスから見て、別のjava VMは、Windowsでいうところの別exeと同じですので、javaとはいえ全然無関係な世界です。普通だったら、同じVM内でインスタンス生成して使うと思うのですが。 謎ですね。 唯一考えられるのは、同じVMだとメモリが一杯になるので、わざと別VMを起動していたりして・・・。

asamn777
質問者

お礼

返事が遅くなってしまい申し訳ありません。 Webアプリの中でRuntime.getRuntime().exec()で別VMを起動ってことは特にやってないですね。。。 何らかの理由で別VMとして起動しているのかもしれませんね。 今すぐにできる環境ではないのですが、1と2を確認してみたいと思います。 ありがとうございました!

関連するQ&A

  • Tomcat Servletが動きません

    『Javaへの道:Tomcat』のページを参考に同じようにやってるのですが、 JSPはうまくいくのですがServletがうまくいきません。 (長文になります) 参考ページと私の環境で違う点 Windows XP Home → XP Pro Tomcat 6 → Tomcat 7 JDK6.0 → JDK6.23 ポート8080 → 8081 以下のファイル、フォルダを作りました(参考ページそのままです)。 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\jspdir\HelloJsp.jsp C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\classes\HelloServlet.class C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\javaroad\WEB-IMF\web.xml C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost\javaroad.xml --↓↓HelloJsp.jspここから↓↓-- <HTML> <BODY> from JSP source<br> <%= new java.util.Date() %> </BODY> </HTML> --↑↑HelloJsp.jspここまで↑↑-- --↓↓web.xmlここから↓↓-- <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app> --↑↑web.xmlここまで↑↑-- --↓↓javaroad.xmlここから↓↓-- <Context path="/javaroad" reloadable="false"/> --↑↑javaroad.xmlここまで↑↑-- JSPを起動 http://localhost:8081/javaroad/jspdir/HelloJsp.jsp → 正しく表示される Servletを起動 http://localhost:8081/javaroad/Hello → ステータス404 The requested resource (/javaroad/Hello) is not available. <気になる点> 1.Tomcatを起動するためStratボタン押しても1回では起動せず、2~3回で起動する。  1回目のときcommons-daemon.2011-01-15.logにこんなログが出る。  [2011-01-15 23:01:16] [error] Pid file 'C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\tomcat7.pid' exists  [2011-01-15 23:01:16] [error] ServiceStart returned 1 2.servletクラスは正しくコンパイルできているのか 状況を詳しく説明しようとして長々と書いてしましたが Servletを表示するにはどうしたらいいでしょう? 足りない情報があれば追加します。

    • ベストアンサー
    • Java
  • Apache、Tomcat連携時のチューニングについて

    よろしくお願いします。 質問ですが、Apache、Tomcatを連携させてイントラのWebを構築したのですが、アクセス数が増えるにしたがって、レスポンスが遅くなり、アクセス数が100未満にもかかわらず、クライアントのWeb画面が固まってしまう現象が起きました。 私はApache、Tomcatのチューニング(主にJVMのメモリ増加設定)である程度は解決するのでは、と思っていますが、この他にチューニングの方法はあるのでしょうか? もし、他の方法がありましたら、詳しく教えて頂けたらと思います。 ちなみに、Javaで開発を行い、OSにはMIRACLE LINUX、DBはORACLEを用いていますが、ORACLEはステータス管理程度にしか使用していないので、今回の件に関しては、特に関係はないと思います。 どなたかご教授ください。よろしくお願いします。

    • ベストアンサー
    • Java
  • Windows,LinuxでTomcatを動かすにはどうしたらよいでしょうか?

    JavaでTomcatをインストールしたことが無いのですが Windows,LinuxでTomcatを動かすにはどうしたらよいでしょうか? Apacheは経験ありますので、それと比較した解説があれば助かります。 また、DspaceというオープンソースがあるのですがこれをWindwosやLinuxで動かしたいのですがこれも可能でしょうか?

    • ベストアンサー
    • Java
  • Linux+Apache+Tomcat3.2.1 で非常に困ってます・・

    はじめまして Servlet初心者です LinuxにApache1.3.14とTomcat3.2.1を入れ、exampleを実行しようとしたところ、 port:8007(Ajp12)からだと   HANDLER THREAD PROBLEM: java.io.IOException: Stream broken port:8009(Ajp13)からだと   ArrayIndexOutOfBoundsException になってしまいます・・ なにが悪いのか? どうすればまともに動くのか? etc.. 教えてください! どうかよろしくお願いいたします・・ ちなみにその他の環境や条件は Redhat Linux 7 / JDK1.3.0 / JSSE1.0.2 / ServletAPI3.2 .. TOMCAT並びにServletAPIはAnt-1.3でコンパイルしました CLATHPATHは TOMCAT起動時にセットされるもの(servlet.jar etc.)の他には $JAVA_HOME/bin、antのjaxp.jar と parser.jar、JSSEの3つのjarファイルくらいです。

  • Tomcatはhttp serverは含んでいる

    Tomcatのwikipediaを読んでいたら 開発されたWebコンテナである。TomcatはWebサーバと連携して実行できるJavaコードの環境を提供するSunのJava ServletとJavaServer Pages (JSP)の仕様を実装している。Tomcatはそれ自身、HTTPサーバを内部に含んでいる。HTTPサーバと連携させて用いることもできる[5]。例えば、Apache HTTP Serverとはコネクタモジュールを用いて連携を行う。1.3系と2.0系ならばmod_jkなどを用い、2.2以降はmod_proxy_ajpモジュールを用いる。 と書いてありました。Tomcatはhttp serverも含んでいるということは、他のapacheなどのhttpサーバーと連携させるってどういうことでしょうか?Tomcatがhttpサーバーの機能を持っていたらわざわざ他のウェブサーバーを連携するという意義がわかりません。どういうことでしょうか?

    • ベストアンサー
    • Java
  • redhat LinuxへTOMCATのインストールについて

    どなたか、redhat LinuxへTOMCATのインストールの 方法を教えていただけませんでしょうか? 現状は、/usr/locarの下に apache j2sdk-1_3_0_02_linux.rpm jakarta-tomcat-3.2.1.src が展開してあります。 Javaサーバーサイドプログラミング 原田洋子著 を見て挑戦しているのですが、どうしてもapacheに tomcatをアドオンすることができません。 Makefile.linuxが見つからないのですが。 展開の仕方が悪いのでしょうか?

    • ベストアンサー
    • Java
  • tomcat+apache+JBuilderでのServletの動作

    現在の環境は下記の通りです。 Linux(Laser5 4.6) Apache1.3.20 Tomcat3.2.3 ------------------------------------ tomcat+apacheでJBuilderを使い作成した Servlet(JARアーカイブ)を動かしたいの ですが、思うように動きません。 手順としては、 1.index.htmlを表示させる。 2.index.htmlにFORMを記述し、Servletを 起動させ、FORM上に入力した値を使用し て処理させる。 になります。 index.htmlとJARアーカイブファイルをどの 位置へ置き、web.xmlやserver.xmlをどの様 に記述すれば宜しいのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • tomcat psコマンドでスレッドのプロセスが見れません。。

    はじめまして。 JDK1.4.2-13 + tomcat5.0.28 + RHEL3でWEBアプリ環境を 構築しています。 Linux上ではJavaの1スレッドが1プロセスとして 実行されていると思いますが、この1スレッドをpsコマンドが 見た時になぜか表示されません。tomcat本体のjavaプロセスは 確認できるのですがスレッドに当たるプロセスが見えません。 topコマンドでは処理させた時にjavaというプロセスが 処理に応じて上位に表示されるのですが、この時に、 ps -ef | grep java でJavaプロセスを確認しようとしてもどうしても 見ることができません。。 linux上でtopコマンドとpsコマンドでは表示されるプロセス に違いがあるのでしょうか? WEBで調べてみてもみなさんpsコマンドでtomcatのJavaスレッド プロセスが確認できているようなので質問させて頂きました。 宜しくお願いします。

    • ベストアンサー
    • Java
  • servletのコンパイルエラーについて CLASS_PATH Tomcat 5.5.11

    Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。 Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。 HelloWorld.java:3: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともなりません。 現在は以下のようになっております。 CLASS_PATH .;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat 5.5 PATH C:\Program Files\Java\jdk1.5.0_04\bin JAVA_HOME C:\Program Files\Java\jdk1.5.0_04 もうどうしたらいいのかわかりません。 助言のほうよろしくお願いします。

    • ベストアンサー
    • Java
  • servletを起動させるURLについて

    現在、javaのservletの勉強をしているのですが、 1つ疑問があります。 現在、サーバのtomcat + apacheを起動して、 http://<サーバのホスト名>:8080/ でアクセスしたら、tomcatのindex.html を起動するようになっているのを、自分が作ったservletを起動する ように変更したいのですが、このようなことはできるのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java