gpt4 book ai didi

java - 如何调试servlet 404

转载 作者:行者123 更新时间:2023-11-28 22:31:23 25 4
gpt4 key购买 nike

我有一个带有 url 映射 ""(空字符串)的 servlet。它应该映射到上下文根(我在 eclipse 中使用 tomcat7)。

但是有时候刷新浏览器,页面会显示404页面。一个快速的解决方法是重新运行(在 eclipse 中)。过了一会儿,同样的 404 错误又回来了。我对此感到非常沮丧。有没有一种方法可以追踪映射的 url 模式有时(大多数情况下都可以)导致 404?

编辑 1:好的,这里是配置和代码的详细信息:我在tomcat服务器前面有一个apache httpd。使用mod_proxy转发请求

<IfModule mod_proxy_http.c>
ProxyPass /myapp http://127.0.0.1:8080/myapp
ProxyPassReverse /myapp http://127.0.0.1:8080/myapp
</IfModule>

这是 servlet:(processRequest 由 doPost 和 doGet 调用)

 @WebServlet("")
public class RootServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Root Servlet");
try {
this.handleHomePage(request, response);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private void handleHomePage(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException, NamingException {

HttpSession session = request.getSession(false);
if (session != null && session.getAttribute(Config.SESSION_AUTH_EMAIL) != null) {
String email = (String) session.getAttribute(Config.SESSION_AUTH_EMAIL);
request.getRequestDispatcher("/WEB-INF/jsp/main/home.jsp").forward(request, response);
}
else {
request.getRequestDispatcher("/WEB-INF/jsp/main/index.jsp").forward(request, response);
}
}


/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.processRequest(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.processRequest(request, response);
}

}

网络.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/jsp/error/404.jsp</location>
</error-page>

<error-page>
<error-code>500</error-code>
<location>/WEB-INF/jsp/error/500.jsp</location>
</error-page>
<servlet>
<servlet-name>info-about</servlet-name>
<jsp-file>/WEB-INF/jsp/info/about.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>info-about</servlet-name>
<url-pattern>/about</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>info-help</servlet-name>
<jsp-file>/WEB-INF/jsp/info/help.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>info-help</servlet-name>
<url-pattern>/help</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>info-contact</servlet-name>
<jsp-file>/WEB-INF/jsp/info/contact.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>info-contact</servlet-name>
<url-pattern>/contact</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>info-terms</servlet-name>
<jsp-file>/WEB-INF/jsp/info/terms.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>info-terms</servlet-name>
<url-pattern>/terms</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>info-privacy</servlet-name>
<jsp-file>/WEB-INF/jsp/info/privacy.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>info-privacy</servlet-name>
<url-pattern>/privacy</url-pattern>
</servlet-mapping>
</web-app>

eclipse打印的日志什么也没有。只是404。我发现当我编辑一些东西并保存更改时会出现问题。 Eclipse 将自动重新加载上下文,主页返回 404。

最佳答案

好的,这可能是 tomcat 7.0.40 的一个错误 https://issues.apache.org/bugzilla/show_bug.cgi?id=54955

关于java - 如何调试servlet 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16484606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com