我已经安装了 tomcat 7、javaservlet 3.0 和 openjdk 7。我已经安装了示例,但我无法仅通过浏览器在磁盘上找到它们。Tomcat 文档说我需要$CATALINA_BASE/webapps/
子目录中的应用程序,但我没有这样的变量。
我已经创建了一个目录myapp
(/var/lib/tomcat7/webapps/ROOT
我myapp/WEB-INF/classes/Servlet.java
已经编译了文件)和myapp/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/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet</servlet-class>
<description>This is a simple Hello World servlet</description>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
但是当我转到 localhost:8080/myapp/test 时出现错误 404。这是我的 servlet:
更新我将我的根目录更改为 webapps/myapp 正在加载 index.html 文件(使用localhost/myapp/index.html
),但我的 servlet 不断收到 404。错误与正常错误不同,因为我没有像错误 url 这样的消息(带有 URI)喜欢/foo/bar
。这是我的 serlvet 的代码(hello world 示例):
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("Hello");
}
}