この例に基づいて webapp を作成しました。
http://code4reference.com/2012/09/hello-world-web-application/
Eclipse 4.2 を使用して動的 Web プロジェクトに変換しました。構造は次のとおりです。
MyProject
-> src
-> webapp
-> WEB-INF
-> appContext
-> beans.xml
-> mappings.xml
-> web.xml
Eclipse内でサーバーをセットアップするときに指定するTomcat 7のローカルインストールがあります。(上記のWebアプリを使用して)サーバーを実行すると、次のようになります。
14-11-2012 14:12:08 org.apache.catalina.core.AprLifecycleListener init
...
14-11-2012 14:12:09 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:MyProject' did not find a matching property.
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
14-11-2012 14:12:09 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 563 ms
14-11-2012 14:12:09 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
14-11-2012 14:12:09 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.32
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
14-11-2012 14:12:09 org.apache.catalina.startup.Catalina start
INFO: Server startup in 680 ms
そして何も起こりません。この URL にアクセスしようとしました:
http://localhost:8080/HelloWorld/hi
HTTP ステータス 404 - /HelloWorld/hi を取得します。うまくいかない方向を示す可能性のあるログはどこかにありますか?
編集:私もこのガイドに従おうとしました:
http://www.eclipse.org/webtools/community/tutorials/BuildJ2EEWebApp/BuildJ2EEWebApp.html
しかし、同じ結果が得られます-何も起こりません。行にブレークポイントを配置しようとしました:
String userAgent = req.getHeader("user-agent");
の:
public class SnoopServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String userAgent = req.getHeader("user-agent");
しかし、その線には決して到達しません。Eclipse 内でプロジェクト (MyWebApp) を右クリックし、[Run as -> run on server] を選択すると、Eclipse 内でブラウザーが開きます。
プロジェクトがサーバーに追加されます。
Eclipse内で実行します:
これは com.sample.SnoopServlet の内容です:
package com.sample;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SnoopServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String userAgent = req.getHeader("user-agent");
String clientBrowser = "Not known!";
if( userAgent != null)
clientBrowser = userAgent;
req.setAttribute("client.browser",clientBrowser );
req.getRequestDispatcher("/showBrowser.jsp").forward(req,resp);
}
}
そして、これは web.xml の内容です:
<?xml version="1.0" encoding="UTF-8"?>
<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>Snoop Servlet</servlet-name>
<servlet-class>com.sample.SnoopServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Snoop Servlet</servlet-name>
<url-pattern>/snoop/*</url-pattern>
</servlet-mapping>
<!-- Don't remove the below section -->
<welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list>
</web-app>