响应文件请求时,Java servlet引发异常

时间:2019-01-19 13:55:33

标签: java html exception servlets

我对Java服务器应用程序很陌生。我正在尝试创建一个返回HTML文件的简单servlet。我已经尝试过打印servlet的输出(下面的代码的注释部分),效果很好,但是文件方法立即崩溃。 在我发布的代码下面,我收到了异常,但是这些异常对我和Google都没有很好的描述性。 也许是某些部署阶段缺少的jar文件?

@SOLVED:几个小时后,我发现俯卧撑集是不可接受的子URL,改为'/ login'即可解决此问题。

文件结构:

cache
-src
--cache
---LoginServlet.java
-WebContent
--META-INF  //autogenerated
--WEB-INF
---web.xml
--index.html

LoginServlet.java

package cache;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        /*PrintWriter out = response.getWriter();       
        out.print("asd");*/
        request.getRequestDispatcher("index.html").forward(request, response); 
    }
}

web.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" 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">
  <display-name>cache</display-name>
  <servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>cache.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

浏览器异常(重复,我仅粘贴一次重复)

  

javax.servlet.ServletException:Servlet执行引发异常     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)     cache.LoginServlet.doGet(LoginServlet.java:16)     javax.servlet.http.HttpServlet.service(HttpServlet.java:634)     javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

蚀异常(重复多次)

  

2019年1月19日2:40:28 PM org.apache.catalina.core.StandardWrapperValve   在上下文中为Servlet [Login]调用SEVERE:Servlet.service()   路径[/ cache]引发异常[Servlet执行引发异常]   根本原因是java.lang.StackOverflowError在

此行重复很多

  

javax.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:408)   在

单个展开

  

org.apache.catalina.core.ApplicationDispatcher.unwrapRequest(ApplicationDispatcher.java:797)     在

并一直重复到结束

  

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)     在   org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)     在   org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)     在   org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)     在   org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)     在   org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)     在cache.LoginServlet.doGet(LoginServlet.java:16)在   javax.servlet.http.HttpServlet.service(HttpServlet.java:634)在   javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

@EDIT我添加了一段堆栈跟踪,起初我没有看到它,因为我没有看到它的开始部分,我认为这是并发的。

0 个答案:

没有答案