単純なhello worldサーブレットをtomcatの.warにコンパイルする

シンプルなベンチマークをしています。私はhello worldを表示する単純なサーブレットを作成したいと思っています。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet{ 
  public void doGet(HttpServletRequest request, 
  HttpServletResponse response)
  throws ServletException,IOException{
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  pw.println("<html>");
  pw.println("<head><title>Hello World</title></title>");
  pw.println("<body>");
  pw.println("

Hello World

"); pw.println("</body></html>"); } }

今度はtomcatのデフォルトのインストールをフォルダにインストールしました:

.../libexec/webapps/ROOT

私はwarファイルを削除しなければならないと信じています。上記のJavaクラスをw/oのw/oファイルにコンパイルすることは可能ですか?

4

1 答え

warファイルは単にzipファイルなので、適切なディレクトリ構造とweb.xmlを使用すると、コマンドラインツールで作成することができます。

web.xmlには、少なくともあなたのサーブレットにURLを送る方法が含まれていなければなりません。


  
    HelloWorldServlet
    HelloWorld
  

  
    HelloWorldServlet
    /
  

This web.xml should be in a folder named WEB-INF inside your war, and the compiled java class file should be in WEB-INF/classes

warファイルは、 ROOT ディレクトリではなく webapps ディレクトリにドロップする必要があります。

Tomcatはあなたのwarファイルを見つけて解凍します。

If it was named "hello.war", the default context name would be "hello", and accessed at http://yourhost/hello/

5
追加された
上記のファイルをtomcatにドロップするか、.warファイルを使用する必要がありますか?それを戦争に変換するコマンドラインは何ですか?
追加された 著者 Blankman,
OK、私はweb.xmlを作成し、上記のようにweb-inf/classesにjavaクラスを入れ、jarコマンドを使用してhello.warを作成し、hello.warをwebappsフォルダにドロップしてtomcatを起動してヒットします/こんにちは/それは動作するはずですか?
追加された 著者 Blankman,
@Blankman jar コマンドを使用します。そして、いいえ、web.xmlを削除するだけでは、アプリケーションの残りのリソース(サーブレットクラスファイル、JSPなど)が必要です。
追加された 著者 Dave Newton,
そうだね、多分。しかし、 WEB-INF は大文字でなければなりません。
追加された 著者 Stephen Denne,
サイドコメントとして、デフォルトでTomcatはポート8080上のHTTP接続をリッスンします。その場合、URLは次のようになります。 http:// yourhost:8080/hello
追加された 著者 jaume,
Tomcatがデフォルトでポート8080にバインドするので、 hello.war のデフォルトURLはむしろ http:// yourhost:8080/hello
追加された 著者 jaume,