【发布时间】:2016-10-31 11:32:27
【问题描述】:
我已经在 ubuntu 上的 tomcat 目录下安装了 Apache Tomcat。我通过导出为单个会话设置了CATALINA_HOME 环境变量。然后我通过$CATALINA_HOME/bin/startup.sh从命令行启动tomcat。一切都运作良好。我看到了tomcat官方页面,假设服务器安装正确。然后我在
$CATALINA_HOME/webaps/apress/
目录。
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>hello, world</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> hello world</h1>");
out.println("</body>");
out.println("</html>");
}
}
然后我编译了文件
javac -cp HelloWorldServlet.java -d ./classes -cp $CATALINA_HOME/bin/servlet-api.jar
编译成功,将class文件放入应用程序根目录的classes子目录中。
然后我编辑了 web.xml 文件。
<?xml version ="1.0" encoding ="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns.xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:/java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Chapter 2</display-name>
<description> Apress demo</description>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/hello.html</url-pattern>
</servlet-mapping>
</web-app>
然后我重新启动了 Tomcat。但是当我尝试通过访问时
http://localhost:8080/apress/hello.html
我收到 Http 状态 404 消息。我做错了什么?
【问题讨论】:
-
你能输入“echo $CATALINA_HOME”并将结果放在这里吗?另外,你能告诉我们你在 Tomcat 和 Catalina Home 下的目录布局吗?