ドキュメントのクイックスタート セクションによると、somewar.war ファイルは、localhost:8080/somewar/ としてデプロイされたデフォルト構成にあります。
thisによると、私がしなければならないのはこれだけです:
package de.swt1321.servlet;
import java.io.OutputStream;
import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns={"/","/index.html"}, loadOnStartup=1)
public class ServletTest extends HttpServlet {
private static final java.nio.charset.Charset UTF8 = java.nio.charset.Charset.forName("UTF8");
@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse res) throws ServletException, IOException
{
byte[] HTML = "<html><head><title>Hello World!</title></head><body><h1>IT WORKED!</h1></body></html>".getBytes(UTF8);
res.setStatus(HttpServletResponse.SC_OK);
res.setHeader("content-type","text/html;charset=utf8");
res.setIntHeader("content-length",HTML.length);
OutputStream os = res.getOutputStream();
os.write(HTML);
os.flush();
}
}
彼が「クラスを作成する」から「プロジェクトをデプロイする」に都合よく移行したことを除いて。そして、これが私が立ち往生しているところです-明らかに私は何か間違ったことをしています。私は buildr を使用してすべてを戦争にパッケージ化し、最終的に次のようになります。
ServletTest.war:
META-INF -> MANIFEST.MF
WEB-INF ->
classes ->
de ->
swt1321 ->
servlet->
ServletTest.class
lib -> javaee-web-api-6.0.jar
それを webapps フォルダーに入れて、応答から html を取得することを期待します。代わりに、404 ページにつながる META-INF と WEB-INF という 2 つのリンクを含むページを取得します。
残念ながら、ここでやるべきことを見逃しています。残念ながら、オンラインで見つけることができるのは、「すべてをWebアプリケーションとしてパッケージ化する...」にジャンプするコードスニペットだけであり、jettyのドキュメントは私はすでに Web アプリケーションがどのように見えるかを知っていると仮定します (そして、さまざまな構成オプションに主に関心があるようです。そもそも実際に機能するようになった場合、実際にはがらくたを与えるかもしれません)。
それを機能させるために何をすべきですか?
編集
最初に Jetty 9 でこれをテストしましたが、Tomcat 7 でも動作せず、本質的に同じ問題が発生したため、タイトルを変更しました。アプリケーションは認識されているようですが (マネージャーに表示されます)、サーブレットは動作していないようです (まったく使用されている場合)。この時点でかなりイライラしています。