- ベストアンサー
127.0.0.1とlocalhost
すみません。サーバのこともよくわかっていないような初心者です。 tomcatをインストールして、起動し、以下のURLで実行してみました。 http://localhost:8080 だと、‘server hungup’というエラーが出ます。 しかし、 http://127.0.0.1 だと、ちゃんと画面が表示されます。 これはどうしてなのでしょうか? 参考になるのかどうかはわかりませんが、以下にnetstat -naのコマンドを入力したときのDOS画面の表示を載せておきます。実はこのコマンドが何をしているのかもよくわかっていないのですが・・・。 C:\tomcat4.0.3\bin>netstat -na Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:8008 0.0.0.0:0 LISTENING TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING TCP 127.0.0.1:2142 0.0.0.0:0 LISTENING TCP 127.0.0.1:2271 0.0.0.0:0 LISTENING TCP 169.254.139.254:137 0.0.0.0:0 LISTENING TCP 169.254.139.254:138 0.0.0.0:0 LISTENING TCP 169.254.139.254:139 0.0.0.0:0 LISTENING TCP 219.106.133.17:137 0.0.0.0:0 LISTENING TCP 219.106.133.17:138 0.0.0.0:0 LISTENING TCP 219.106.133.17:139 0.0.0.0:0 LISTENING UDP 127.0.0.1:2142 *:* UDP 127.0.0.1:2271 *:* 字数制限のため、一部省略してます。 よろしくお願いします。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
> ということわ、、、TOMCATの設定ファイルに問題があるとしか考えようがない > のですが、server.xmlという設定ファイルをいじったことはありますか? > おそらくそこでContextの記述のしかたをミスっているということが > 考えられます。 一応補足。。。 詳細な場所は TOMCAT_HOME/conf/server.xml です。 server.xml の設定ミスの可能性も考えてはいたのですが、 Context の記述を間違えてもこういう現象は起こらないと思うんですよ。 可能性があるとすれば、 <Engine name="Standalone" defaultHost="localhost" debug="0"> の defaultHost のところか、 <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true"> の name のところか、 だと思うのですが、こんなところが誤っているというのも どうも考えにくくて。 でも、ついでだから調べておきますか?
その他の回答 (10)
- hidebu-
- ベストアンサー率53% (45/84)
やはりだめでしたか、、、 Harryさんの回答からOSレベルでのDNSの解決はうまくいってるのは確認できてるのですが。 OSが98というのがTOMCATに影響してるのかもしれません。 NTとはDLLのバージョン等随分ちがいますから。 TomcatのHTTPサーバー機能の部分が仮想ホストへのマッピングを失敗してるという段階まではきてます。 おそらく9X系統はサポートしてないのかもしれません。 一応の解決策としては、HTTPサーバーとしての機能は他の製品にまかせるという方法があると思います。よく知られているのがAPACHEとの連携が有名です。 Apcheに関してはMEでもうまく仮想ホストの解決ができていたので たぶん98でも大丈夫だとおもいます。 Apatchだと98でもhttp://localhost/でアクセスできるはずです。 >localhost(default)=127.0.0.1っていうのはどこに>書いてあるんでしょうか? 基本的にDNSとIPの照合はHarryさんが答えられたようにまずはOSでやっています。 そして、TOMCATのHTTPサーバー機能の部分がEngineエレメントの個所とHostエレメントの仮想ホストの記述にそってマッピングするはずなのですが、そこがうまくいっていないのだと思います。。
お礼
そうですね。APACHEの方もやってみます。 本当にいろいろありがとうございました。とりあえず、この質問は締め切ろうと思います。 hidebu-さんにもHarry_さんにもほんとにお世話になって、お二人ともに50ポイントぐらい差し上げたい気持ちでいっぱいなのですが、そういうわけにもいかないようですので、今回の11回の回答で若干Harry_さんの方が回数が多いということでHarry_さんに20ポイントをもらって頂こうと思います。 hidebu-さん、気を悪くされないでくださいね。何度も言っておりますが、本当にお二人ともに感謝しています。 今後ともよろしくお願い致します。
- hidebu-
- ベストアンサー率53% (45/84)
Harryさん補足どうもありがとうございます^^; おそらく、Harryさんのいう個所を直接書き換えたということはないとおもいます。 ただコンテキストを書き加えるときに<HOST>スコープからはずれたところに記述したりとか、コメントを消すために誤って既存のものを削除してしまったり、気づかずに他のタグを消してしまったり等、人為的なミスだと思われるためです。 Server.xmlのバックアップをとっていたならそれと差し替えてみるのもいいかもしれません。 なければダウンロードしてきて、そのServer.xmlと差し替えてみるとか。。。 慣れていない方(ユーザーもそうですけど)は、使いなれてる人間からは「普通それはやらないだろう」っていうことをやっていたりするので、一応、まさか?と思うところでも確認したほうがいいとおもったので。。。。
お礼
本当に熱心に対応して頂いてありがとうございます。 tomcatのホームページより、jakarta-tomcat-4.0.6をダウンロードして、全部を差し替えて(以前はjakarta-tomcat-le-4.0.3)やってみましたが・・・ダメでした。ちなみにtomcat3.2.3でもやってみました(なんとなく古いバージョンの方がうまくいったりして・・・と思い)。ダメでした。 ほんと何が原因なんでしょうかね? ど素人な疑問かと思うのですが、localhost(default)=127.0.0.1っていうのはどこに書いてあるんでしょうか?
- hidebu-
- ベストアンサー率53% (45/84)
こんばんわ。少し仕事が忙しくみていませんでした。 どうやらTELNETがつながっているということはOSレベルでのDNSの解決はうまくいっています。 ということわ、、、TOMCATの設定ファイルに問題があるとしか考えようがないのですが、server.xmlという設定ファイルをいじったことはありますか? おそらくそこでContextの記述のしかたをミスっているということが考えられます。 ただ、インストールをして一回目のアクセスでサンプル画面がいきなりみえなかったというのであれば、おもちのTOMCATに問題があるとおもいますので、ダウンロードしなおしてみる必要があるかもしれません。 確認しますが http://localhost:8080/ でアクセスしてTOMCATのサンプルページ自体がみれないんですね?
- Harry_
- ベストアンサー率55% (36/65)
今、ブラウザはIE使ってるんですよね。 もしバージョンが低いのであれば、WindowUpdateで バージョンアップして、それで試してみると どうなるでしょうか。。。 申し訳ありません。 それでだめならギブアップします。。。
お礼
「申し訳ありません」なんて、とんでもないです。 こんなにもいろいろアドバイスいただいて本当にどんなにありがたかったか。 Harry_さんには前回もお世話になっていますし、本当にありがとうございました。 間違いなく、これからもこのサイトの質問にたくさん名前が挙がることになると思います。 これに懲りず、今後もアドバイスして頂けたらと思います。 p.s.IEは最新の6にバージョンアップしましたが・・・。私の方が申し訳なくて・・・。
- Harry_
- ベストアンサー率55% (36/65)
えっ。。。 telnet localhost 8080 では本当に接続できませんでしたか? 接続に成功すると、 DOS窓がただ真っ黒な画面になるだけですが、 「接続できません」というメッセージがでました? ping localhost は通るのに、 telnet localhost 8080 は通らない?
補足
ごめんなさい。勘違いをしていました。 telnet localhost 8080 としてから、http://localhost:8080で表示できるかどうかだと思ってました。 それは、できなかったのですが、 telnetは起動しました。Dos窓が真っ黒な画面になるのではなく、別のウィンドウが立ち上がります。それで、しばらくすると「ホストへの接続が失われました。」というメッセージがでて、接続が切断されるようです。
- hidebu-
- ベストアンサー率53% (45/84)
Harryさんの回答でだいたい絞られてきたとはおもいますが、、念のためTomcatを立ち上げてから DOSから telnet localhost 8080 とうちこんで接続できるかどうかみてください。 たぶん、OSではなくサーブレットコンテナがマッピングを失敗しているような印象をうけます。
お礼
Harry_さん同様、いろいろ本当にありがとうございます。 telnet localhost 8080 と打ち込んでやってみましたが、ダメでした。 いろいろアドバイス頂いてるのに申し訳ないです。 私ももっといろんな情報を集めてがんばってみます。
- Harry_
- ベストアンサー率55% (36/65)
C:/WINDOWS/hosts.sam をテキストエディタで開いてください。 前記のとおり内容を確認した後、 *ファイル名を、拡張子をはずして hosts に変更してください* これで、もう一度、http://localhost:8080/ にアクセスできないか 試してみてください。
お礼
本当にいろいろアドバイス頂きありがとうございます。 Harry_さんに教えて頂いた通り、hosts.samの中身を確認し、拡張子の.samを 消して試してみましたがダメだったようです。 また、自分でもいろいろなサイトを探して試してみたいと思います。 今後ともよろしくお願いします。
- Harry_
- ベストアンサー率55% (36/65)
自分では見たことがないエラーですし、 環境も少しこちらと異なるので、 色々的外れなことを言ってしまうかもしれませんが。 調べてみたところ、Tomcat の古いバージョンでは そういうバグもあったようです。 が、それ以外にも色々な原因で起こりうるエラーのようです。 とりあえず、念のため、Hosts ファイルの内容を確認してもらえませんか。 先の回答で書いたディレクトリはもしかすると少し間違ってるかもしれません。 ( こちらは Win2000 なので ) もし前記のディレクトリに見つからなかったら、WINDOWS ディレクトリ以下を ファイル名 Hosts で検索してみてください。 そして、そのなかに、 127.0.0.1 localhost という記述があることを確認してください。
補足
あのう、たびたび本当にすみませんが、検索したところ以下の二つのファイルが見つかりました。でも、ちょっと中身の確認方法がわからなくて・・・。 Hosts.sam Lmhosts.sam samファイルってどのアプリケーションで開いたらいいんでしょうか? ワードパッドとかでいいんでしょうか? 常にこのアプリケーションを使うのチェックマークははずしておいた方がいいですか?
- Harry_
- ベストアンサー率55% (36/65)
どうも。 netstat の結果を見ると、 Tomcat がちゃんと起動されていて、 8080, 8005, 8009 などのポートへのアクセスを受け付けている、 ということがわかります。 Windows はホスト名の解決に、 C:/WINDOWS/SYSTEM32/DRIVERS/ETC にある HOSTS というファイル を使用してます。その中に、「localhost 127.0.0.1 」という 対応が記述されていますが、ping が正しく通っているので、 その設定は間違っていないはずです。 ところで、 その、 Description: Connection reset by peer とか、 Server Hang up などのエラーというのは、Tomcat が出しているエラーですか? Tomcat の設定が正しくない可能性が高いです。 Tomcat のバージョンを教えてください。
補足
Harry_さん、今回もお世話になります。 tomcatのバージョンは jakarta-tomcat-4.0.3-LE-jdk14 です。 今は、tomcatを起動する時、MS-DOSを起動して、 set JAVA_HOME=C:\j2sdk1.4.1 としてから、startupをしています。 よろしくお願いします。
- hidebu-
- ベストアンサー率53% (45/84)
え~と、、まずOSはなんなのでしょうか? それから DOSから[ping localhost] と入力してどんな結果が返ってきますか? netstatの結果をみる限り サーブレットコンテナはキチンと待機状態になってるようですね。
補足
ごめんなさい。 osはwindows98です。 ちなみに今朝の‘localhost:8080'のエラーは Description: Connection reset by peer というものでした。 ‘127.0.0.1:8080/'は大丈夫です。 hidebu-さんのおっしゃられるようにしてみました。以下のとおりです。 C:\tomcat4.0.3\bin>ping localhost Pinging yamamoto [127.0.0.1] with 32 bytes of data: Reply from 127.0.0.1: bytes=32 time=1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<10ms TTL=128 Reply from 127.0.0.1: bytes=32 time<10ms TTL=128 Reply from 127.0.0.1: bytes=32 time<10ms TTL=128 Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms よろしくお願いします。
お礼
この三連休はいろいろ忙しくて全然チェックできなくてすみません。 早速、調べてみましたが、Harry_さんが書いていただいているとおりに書かれてありました。 本当に何から何までお世話になって、自分の知識のなさに情けなくなります。