Revised: 26th/Apr./2008; Since: 25th/Nov./2002
server.xml
の編集WARを${CATALINA_HOME}/webapps
以外の場所へデプロイしてみましょう。"${CATALINA_HOME}/conf/server.xml
"をテキストエディタで開いてください。ここで、${CATALINA_HOME}
はTomcatをインストールしたディレクトリのパス名です。ここでは、"C:\Program Files\Apache Software Foundation\Tomcat 6.0
"になっています。
次の例は、"D:\java\webappl\helloworld.war
"に作成したドキュメント・ベース(または、コンテキスト・ルート)に対して、ブラウザからhttp://localhost:8080/myWebAppl
でアクセスできるようにする場合の例です。ここで、/myWebAppl
をコンテキスト・パスと呼びます。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
:
<!-- My Context Path: D:\java\webappl as /myWebAppl -->
<Context path="/myWebAppl" docBase="D:\java\webappl\helloworld.war"
reloadable="true" crossContext="true" />
:
</Host>
Tomcatを再起動してください。server.xml
の更新の反映には、Tomcatの再起動が必要です。
server.xml
への更新が反映されたか確認します。動作を確認するために、上で作ったドキュメント・ベースに、次のコードを持つindex.html
を置いてください。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" > <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis" /> <title>Hello, World!</title> </head> <body> <h1>Hello, World!</h1> <p>ウェブ・アプリケーションの世界へようこそ!これはサンプル・ドキュメントです。</p> <p><a href="./Welcome">サーブレットの起動</a></p> </body> </html>
保存時に文字コードが選べれば Shift_JIS を選択してください。
ブラウザから次の URL を要求してください。実際には、アドレス欄に以下の URL を入力して enter キーを押してください。
http://localhost:8080/myWebAppl/[localhost:8080]
無事に HTML 文書が表示されれば成功です。サーブレットは、まだ作ってないので404 Not Foundが返されます。
ドキュメント・ベース配下にサブ・ディレクトリを自由に作って動作を確認してください。例えば、ドキュメント・ベース配下の"/subdir/hello.html
"へのアクセスは "http://localhost:8080/myWebAppl/subdir/hello.html
" になります。ここにmyWebAppl
はserver.xml
で設定したコンテキスト・パスです。
次にドキュメント・ベース配下の"WEB-INF/classes
"に、次のコードを持つHelloWorld.java
を作成し、コンパイル/実行してください。
import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // 送信文字コードのセット res.setContentType("text/html; charset=Shift_JIS"); // 出力ストリームの取得 PrintWriter out = res.getWriter(); String title = "Hello World!"; Date date = new Date(); // 出力ストリームへの書き込み out.println("<html lang=\"ja\">"); out.println("<head><title>" + title + "</title></head>"); out.println("<body>"); out.println("<h1>" + title + "</h1>"); out.println("<p>現在時刻:" + date + "</p>"); out.println("</body></html>"); // 出力ストリームのクローズ out.close(); } }
次のコードは、 Windows のコマンド・プロンプトでの、上記のHelloWorld.java
のコンパイルです。
D:\java\webappl\helloworld.war\WEB-INF\classes>javac -classpath "C:\Program File s\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar" HelloWorld.java D:\java\webappl\helloworld.war\WEB-INF\classes>
-classpath
フラグの引数 ""C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar"
" は、Tomcat と共に導入されたserver-api.jar
への絶対パスです。インストール・ディレクトリを${CATALINA_HOME}
と書けば、"${CATALINA_HOME}\lib\servlet-api.jar
" になります。これはOSの環境変数CLASSPATH
にセットしておけば不要です。
web.xml
の作成このサーブレットにアクセスするパス(URLパターン)を、"WEB-INF/web.xml
"に記述します。次のソースをコピーして、"WEB-INF/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>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/Welcome</url-pattern> </servlet-mapping> </web-app>
Tomcatは、web.xml
の編集結果は即時反映しません。[Webアプリケーションマネージャ]から[再ロード]を選ぶか、Tomcatを再起動することで反映されます。
図:再ロード結果 |
---|
次の画像は、ブラウザから"http://localhost:8080/myWebAppl/Welcome
"を要求したときの実行結果です。
図:HelloWorldの実行結果 |
---|
SEO | [PR] !uO z[y[WJ Cu | ||