• ベストアンサー

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

a-kumaの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> 作成したServletやJSPはどこへ置けばいいのでしょうか? tomcat のインストールディレクトリの下にある conf ディレクトリの server.xml で 置き場所を定義します。 デフォルトで、以下のような定義があるはずです。 <Context path="/examples" docBase="webapps/examples" crossContext="false" debug="0" reloadable="true" > </Context> これは http://ホスト名/examples/なんとか というリクエストは、(インストール ディレクトリ配下の)webapps/examples の下を探すよ、という意味です。 基本的に jsp は、html と同じように、配置ディレクトリが URL に対応すると 思って良いです。例えば、webapps/examples/a-kuma/test.html というファイルは http://ホスト名/examples/a-kuma/test.html という URL に対応します。 servlet は、基本的に配置ディレクトリ配下の WEB-INF/classes に配置します。 何も考えなければ、webapps/examples/WEB-INF/classes/test.class という servlet は、http://ホスト名/examples/servlet/test という URL に対応します。 ただ、java で言うパッケージや、classpath の通し方、web.xml というファイルの 定義で、ファイルと URL の対応はいろいろバリエーションがあります。

holydevil
質問者

お礼

ありがとうございました。 servletだけちょっと変わったところにおく必要があるんですね。でもなんで WEB-INF/classes がURLでは servlet となるんでしょうか?決まりですか?それともどこかで定義しているんでしょうか? あと、URLでexamples以下のディレクトリは port8080でもport80でも同じ画面が出てきます。 port80はApacheのWEBサーバ機能 port8080はTomcatのWEBサーバ機能 ということはわかっているのですが、ApacheのWEBサーバでAliasを作成したわけでもないのになぜこんなことができてしまうのか?ひょっとするとApacheTomcat連携モジュールであるmod_jk.dllをD:\Program Files\Apache Group\Apache\modulesにインストールしたからでしょうか?

関連する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