Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTTP状态404-Servlet[ServletName]不可用_Java_Jsp_Tomcat_Servlets - Fatal编程技术网

Java HTTP状态404-Servlet[ServletName]不可用

Java HTTP状态404-Servlet[ServletName]不可用,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,问题:我的index.jsp和web.xml不断进入HTTP 404和500 我用的是Tomcat6 这来自index.jsp: 注册 名字: 姓氏: 当我注册时: 我点击名字和姓氏,进入404,信息: HTTP状态404-Servlet RegistrationServlet不可用 类型状态报告 消息Servlet RegistrationServlet不可用 说明请求的资源(Servlet RegistrationServlet不可用)不可用 ApacheTomcat/6.0.35 你认

问题:我的index.jsp和web.xml不断进入HTTP 404和500

我用的是Tomcat6

这来自index.jsp:

注册
名字:
姓氏:
当我注册时:

我点击名字和姓氏,进入404,信息:

HTTP状态404-Servlet RegistrationServlet不可用 类型状态报告

消息Servlet RegistrationServlet不可用

说明请求的资源(Servlet RegistrationServlet不可用)不可用

ApacheTomcat/6.0.35

你认为那是什么原因造成的错误

RegistrationServlet
位于文件夹
src/coreservlet/

我检查了web.xml,但似乎还可以,但这里有(如果有帮助的话):


展示天平
coreservlets.ShowBalance
展示天平
/显示平衡
随机数Servlet
coreservlet.RandomNumberServlet
随机数Servlet
/随机数
注册服务
CoreServlet.RegistrationServlet
注册服务
/登记册
PrimeServlet
coreservlet.PrimeServlet
PrimeServlet
/主要的
index.jsp
index.html
在过去的两天里,我一直在试图解决这个小问题,但什么都没有,任何帮助都将不胜感激

编辑:

根据要求,这里有
RegistrationServlet

package coreservlets;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class RegistrationServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession();
        synchronized (session) {
            NameBean nameBean = (NameBean) session.getAttribute("name");
            if (nameBean == null) {
                nameBean = new NameBean();
                session.setAttribute("name", nameBean);
            }
            nameBean.setFirstName(request.getParameter("firstName"));
            nameBean.setLastName(request.getParameter("lastName"));
            String address = "/WEB-INF/mvc-sharing/ShowName.jsp";
            RequestDispatcher dispatcher = request
                    .getRequestDispatcher(address);
            dispatcher.forward(request, response);
        }
    }
}
下面是项目树:


错误。。。这是显而易见的,但是/WEB-INF/classes/COREServlet/中的RegistrationServlet.class是什么?你编译了吗?(使用Tomcat时,您需要显式编译吗?如果不需要,那将令人惊讶。)

可能是注册路径没有考虑上下文路径。解决这个问题的一个好方法是使用jstl核心url标记-

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
...
<c:url value="/register" var="url">
<form action="${url}">

...

这将确保如果您的上下文路径被添加到url中。

您的url完全正常。如果URL错误,您将收到如下404消息:

请求的资源
寄存器
不可用

但你却得到了

Servlet
RegistrationServlet
不可用

这意味着找到了servlet,但无法执行它,因为它的构造和初始化失败并出现异常。在Tomcat的掩护下,以下步骤基本上失败了:

Servlet servlet = new RegistrationServlet();
servlet.init(servletConfig);
servlet.init();
您需要读取此异常的服务器日志,然后相应地修复代码


虽然您的URL完全正常,但它的错误很容易在上下文中发生更改。您更希望指定一个域相对URL:



另请参阅此相关答案:

如果在实例化servlet时发生任何错误,我们将得到此类错误,
即使
WEB-INF\lib
文件夹中缺少库。确保所有库都放在表单操作中的
WEB-INF\lib

中,尝试将“/register”更改为“/register”(删除点)尝试
您的绝对应用程序URL是什么?@ftom2:我得到了以下信息:
HTTP状态404-/register类型状态报告消息/注册描述请求的资源(/register)没有。Apache Tomcat/6.0.35
@ITCuties:尝试了该操作,得到了以下结果:
HTTP状态404-/register-type状态报告消息/register-description请求的资源(/register)不可用。Apache Tomcat/6.0.35
我应该下载哪个
jstl
版本?在这之后,只需在
index.jsp
?jstl 1.2的开头(第一行)添加一行
,您可以从这里下载-,然后在jsp文件的顶部添加该声明您建议的是一个完全过时的jstl URI。请阅读我们的JSTL wiki页面以获得正确的指南:除此之外,这并没有以任何方式回答具体问题。哦,谢谢,我没有意识到JSTL链接已经过时。是的,这个建议并没有解决根本的问题,我们推测这可能是找不到servlet的原因之一+我是诺布,所以发发慈悲吧,但我有一个愚蠢的问题。Tomcat可以在eclipse中使用WEB-INF中的jsp文件吗?@Pshemo:可以。这甚至是MVC中推荐的做法。只有servlet可以通过
RequestDispatcher
转发给它们。这样,用户被迫使用前端控制器servlet来访问JSP,并且永远不能单独访问那些需要预处理/后处理servlet的JSP。另请参见我们的servlets wiki页面,了解如何使用servlets:非常感谢。很抱歉,我这么晚才感谢你,但我需要测试一下你告诉我的内容,以确保我理解正确:)@BalusC:非常感谢你对我上一篇文章的帮助。第二,我尝试使用这个
,但是我仍然得到
404
页面,就像
HTTP状态404-Servlet RegistrationServlet不可用类型状态报告消息Servlet RegistrationServlet不可用描述请求的资源(Servlet RegistrationServlet不可用)不可用。
。我在哪里可以找到日志?@BalusC:好的,然后我得到了这个
HTTP状态500-类型异常报告消息描述服务器遇到了一个内部错误(),阻止它完成这个请求。异常javax.servlet.ServletException:包装器找不到servlet类CoreServlet.RegistrationServlet或它所依赖的类,这意味着它找不到该类。我怎样才能解决这个问题?这太烦人了:)