Tomcat 上的 Java servlet 出现 404 错误,但在 localhost 上运行良好

Posted

技术标签:

【中文标题】Tomcat 上的 Java servlet 出现 404 错误,但在 localhost 上运行良好【英文标题】:Java servlets on Tomcat take to 404 error but it works fine on localhost 【发布时间】:2020-10-29 19:52:25 【问题描述】:

我已经使用 NetBeans IDE 设计了一个 webApp。它在 localhost 上运行良好,但是当我在主机上部署它时,尝试访问 servlet 时会出现 404 错误。

我的 servlet 包含 URL 模式和名称规范,像这样

@WebServlet(name = "FAQ", urlPatterns = "/faq")
public class FAQ extends HttpServlet 

servlet 只是“重定向”到 .jsp

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException 
        request.getRequestDispatcher("/faq.jsp").forward(request, response);
        
    

如果我使用 URL www.mysite/faq.jsp 它可以正常工作,但是当我尝试使用 servlet www.mysite/faq 时就不行了(正如我所说,即使它在 localhost 上也是如此)。

我检查了 .class 文件是否已编译并包含在 WEB-INF 文件夹中,这似乎不是问题。

我也尝试像下面那样添加 servlet 的 web.xml 描述,但它也不起作用。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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">
    <servlet>
        <servlet-name>FAQ</servlet-name>
        <servlet-class>beans.FAQ</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FAQ</servlet-name>
        <url-pattern>/faq</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

我不知道这可能是我的问题,这可能是一件非常愚蠢的事情,但我找不到。

谢谢大家。

【问题讨论】:

是的,我试过了。问题似乎不在于 servlet 内容,而在于服务器找不到 servlet 本身。 你的代码和配置没有问题。与您的应用程序主机相关的配置似乎存在一些问题。您是否咨询过您的托管服务提供商? 他们告诉我服务器配置的托管没有问题。他们建议我在编译应用程序时检查类路径,但我找不到可能是什么问题。 【参考方案1】:

已解决:

正如我所说,这应该是一件简单的事情。 托管服务器是在 Tomcat 10x 和 JDK 10 上配置的,而我的项目是在 jdk 8 和 tomcat 7 上构建的。 解决方案是询问托管服务提供商并更改服务器配置以适合我的项目。

【讨论】:

以上是关于Tomcat 上的 Java servlet 出现 404 错误,但在 localhost 上运行良好的主要内容,如果未能解决你的问题,请参考以下文章

无法将图像文件从 Android 应用程序发布到托管在 Tomcat 上的 Java servlet

Java编程中出现javax.servlet.*类不存在怎么解决

tomcat部署在centos6.8上的乱码问题

Tomcat Servlet 浏览器访问 出现404

http状态404 - 在jsp中找不到,Tomcat服务器上的servlet [重复]

Tomcat部署servlet实现类时出现java.lang.ClassCastException类型转换异常