• ベストアンサー

Servletの置き場所(ディレクトリ)

noname#16216の回答

noname#16216
noname#16216
回答No.2

>Apacheを起動しなくても、8080ポートで接続すればTomCATの画面が現れるので、 >なぜApacheが必要なのかという疑問 上記の疑問ですが、単純にサーブレットを実行するだけであれば、tomcatが持つ WEBサーバ機能だけで十分です。 ただし、tomcatが持つWEBサーバ機能はあくまでサーブレットの単体テストを 行う環境を提供する程度の意味しかもたず、実際にインターネット上に公開して サーブレットを実行できるようなWEBサーバを構築しようと思った場合、tomcat のWEBサーバ機能は、セキュリティなどの面であまりにも貧弱です。 というわけで、通常はtomcatに限らず、いろんなサーブレットコンテナは とりあえずWEBサーバ機能は持っているものの、ApacheやIISといった本職の WEBサーバにアドオンして動作出来るように作られています。 > あと、URLでexamples以下のディレクトリは > port8080でもport80でも同じ画面が出てきます。 > port80はApacheのWEBサーバ機能 > port8080はTomcatのWEBサーバ機能 > ということはわかっているのですが、ApacheのWEBサーバでAliasを作成した > わけでもないのになぜこんなことができてしまうのか?ひょっとすると > ApacheTomcat連携モジュールであるmod_jk.dllをD:\Program Files\Apache > Group\Apache\modulesにインストールしたからでしょうか? これは、おっしゃる通り連携モジュールのおかげです。 連携モジュールの中身を見たわけではないので、類推に過ぎませんが、 tomcatのApache連携モジュールは、Apacheへのリクエストを監視して、 それが自分のコンフィグファイル(server.xml)に記述されたURLへの 参照である場合に、ユーザからのリクエストを横取りして処理を行っている ようです。 なので、Apacheのhttpd.confの中にtomcat用の連携モジュールのロード命令が あるはずですが、それをコメントアウトすると、ポート80ではexamples配下の 内容は見えなくなるはずです。 # 試したわけではありませんが。。。

holydevil
質問者

お礼

ありがとうございます。 簡易WEBサーバとしてなら、Tomcatでも言いということですね。スッキリしました。ありがとうございます

関連する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
  • サーブレットとJSPのディレクトリ指定について

    現在WebサーバーとしてTomcatを使用しているのですが、題記の通り質問があります。 JSPのディレクトリ構成は C:\Program Files\Apache Tomcat 4.0\webapps\(JSPを保存するディレクトリ) というようにwebappsのしたにディレクトリを作成しました。 JSPからサーブレットを呼ぶために、 現在は C:\Program Files\Apache Tomcat 4.0\webapps\(JSPを保存するディレクトリ) \WEB-INF\classesディレクトリに格納しています。 できれば、sevletディレクトリを作りわかりやすい構成にしたいのですが、 そのようにやることはできるのでしょうか?

  • TomcatのJSP Examplesのページを開けません

    これからJSP・サーブレットを勉強しようと思っている初心者です。 Tomcatを起動しhttp://locaohost:8080でページは表示されるのですが、JSP ExamplesとServlet Examplesを開こうとすると、 The requested resource (/jsp-examples/) is not available. というメッセージがでて開く事が出来ません。 WindowsXP J2SE 環境変数は path C:\Program Files\Java\jdk1.5.0\bin;C:\Program Files\MySQL Server4.1\bin CATALINA_HOME C:\Program Files\Apache Software Foundation\Tomcat5.5 JAVA_HOME C:\Program Files\Java\jdk1.5.0 CLASSPATH C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\servlet_api.jar; C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\jsp_api.jar; C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\jsp 10\WEB-INF\classes に設定してあります。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • Apache

    過去の質問やサイト検索して調べてみたのですが、どうしてもわからないので質問させていただきます。 Apache2.2.3 Tomcat5.5.17をmod_jk.soで連携させています。 Tomcat内のwebappsフォルダにJSPファイルを作成しています。 そのファイルをwww.xxx.com/xxx/yyy.jspというように表示させたくhttpd.confとserver.xmlに付け加えをしているのですが、上手くいきません。 [httpd.conf] DocumentRoot "/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/xxx" <Directory "/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/xxx"> AllowOverride FileInfo AuthConfig Limit Options Indexes MultiViews SymLinksifOwnerMatch Order allow,deny Allow from all </Directory> [server.xml] <Host name="www.zzz.com" debug="0" appBase="/webapps/xxx" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/Program Files/Apache Software Foundation/Tomcat 5.5/webapps" debug="0" reloadable="true"/> </Host> 上記をそれぞれ追加してみたのですが、どのようにしたらいいのでしょうか。 それとも根本的に間違っているのでしょうか。 また、Apache2.x/Tomcat5.xの連携方法について詳しく書いてある本などありましたら紹介して頂きたいです。 不備情報がありました仰ってください。 宜しくお願いします。

  • servletのコンパイルエラーについて

    Apache Tomcat 5.5.12にてサンプルプログラムHelloWorld .javaをコンパイルするとエラーが出てしまいます。 HelloWorldServlet.java HelloWorldServlet.java:2: ';' がありません。 import javax.servlet-api.*; ^ CLASSPATHなどの設定も一通りサイトを参照して設定してみました。 CLASSPATH .;C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar;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_07\bin JAVA_HOME C:\Program Files\Java\jdk1.5.0_07 JAVA初心者なので調べてみましたが解決にはいたりませんでした。 よろしかったらご教授のほどよろしくお願い致します。

    • ベストアンサー
    • Java
  • サーブレットは動くがJSPだけ動かない

    Servlet/JSPでの開発をTomcatで行っているのですが、webapps/examples/jspの JSPサンプルが起動しませんでした。Internal Servlet Error 500が返されてしまい ます。 開発環境 Windows 2000 Java2 SDK 1.3 Jakarata Tomcat 3.2.1 環境変数 TOMCAT_HOME=C:\jakarta-tomcat-3.2.1 JAVA_HOME=C:\jdk1.3 PATH=%PATH%;C:\jdk1.3\bin CLASSPATH=%CLASSPATH%;C:\jakarta-tomcat-3.2.1\lib\servlet.jar 気になるのは、Oracle8iのトライアル版をインストールして いる点です。Oracleをインストールすると以下のような環境変数が設定されます。 Oracleインストール後の環境変数Path Path=C:\Oracle\Ora81\bin;C:\Program Files\Oracle\jre\1.1.7\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\jdk1.3\bin;C:\Oracle\Ora81\orb\bin 1.1.7のjreがかなり怪しいとは思うのですが。 もう一度、質問をまとめてみます。 ・exampleサーブレットは動くが、example JSPだけが動かないのはどうしてでしょう? ・とにかくJSPだけを動かしたいのですが、方法はあるでしょうか?  (JDBC接続を行うため、Oracleは削除できないという前提で) 皆様の知恵をお貸しください。

    • ベストアンサー
    • Java
  • apacheとサーバについて

    apacheとtomcat、サーバ接続についてくわしいかたお願いします。 環境: Windows vista Apache2.0.61 Tomcat5.5.25 で tomcatとapacheは単独でうごきますし、 mod_jkを使い、apacheとtomcatを連携させました。 その際のhttpd.confには以下を追記しました。 末尾 <IfModule mod_jk.c> JkWorkersFile "C:\Program Files\Apache Group\Apache2\conf\workers.properties" JkLogFile logs\mod_jk.log JkLogLevel warn JkMount /*.jsp worker1   →(1) JkMount /servlet/* worker1     →(2) JkMount /examples/* worker1    →(3) JkMount /tomcat-docs/* worker1   →(4) </IfModule> において(4)は自分で作成(追加)しhttp://localhost/tomcat-docs/でみることができました。 しかし(3)においてはexampleに対応するファイルがtomcatに入ってなかったため、見れないのはわかります。 ここで(1)ですがこれはjspファイルを見れるようにするという意味ですよね? ということは もし、自分で○×.jspというファイルをlocalhostで見たい場合は httpd.confに JkMount /○×/* worker1と追加すればみれるということでしょうか? 追記して確認したところwebページがみつかりませんとの表示があります。 また、localhostでなく外部から○×.jspに接続されることを考えた場合、http://localhost/○×.jsp/のlocalhostに自分のIPアドレスを入れてあげれば外部からもみることができますよね? 質問ばかり&拙い文章ですいません。 なお○×.jspは C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\rootsの直下に入っています。 httpd.confと、サーバ接続の編集があいまいになっています。

  • Servlet内でのPath

    Servlet内でのPath指定でちょっと悩んでいます。 XMLを読ませて処理させようとして Source inSource = new StreamSource(new File("./XmlDump.xml")); とかやっているんですが、いざアクセスすると java.io.FileNotFoundException: /usr/local/jakarta-tomcat-3.3.1/bin/./XmlDump.xsl などとエラーを吐いてしまいます。 Servlet実行時のPathはどこになるのでしょうか・・・? いままで、実行中のclassが置いてあるディレクトリ(この例では $TOMCAT_HOME/webapps/xxx/WEB-INF/class)がルートだと思っていたのですが・・・。

    • ベストアンサー
    • Java
  • Servletが動きません・・・

    自分で作成したServletを動かそうとしているのですが、あちこち設定してもどうも動きません。 どこかに設定ミスや漏れがあるのかよくわからないのですが、どなたか教えていただけないでしょうか? ☆環境 WindowsXP,Tomcat4.1,IE6.0 【Tomcatのインストール場所】 C:\Program Files\Apache Group\Tomcat 4.1 【開発物の起き場所】 C:\Program Files\Apache Group\eclipse\workspace\myapp 【myapp配下の構成】  myapp\WEB-INF\classes\jp\co\aaa\bbb\TestServlet.class  myapp\WEB-INF\lib  myapp\WEB-INF\src  myapp\doc  myapp\jsp  myapp\src  myapp\work

    • ベストアンサー
    • 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