0
我正在尝试创建简单的Web应用程序。 这里是我的web.xml
stackoverflowerror尝试访问Web应用程序时
<servlet>
<servlet-name>basicServlet</servlet-name>
<servlet-class>com.pack.BasicServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>basicServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
这是我index.jsp
是位于webapp/WEB-INF/jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Basic web page</title>
</head>
<body>
<h2>Data provided by server:</h2>
<p>
<c:choose>
<c:when test="${ not empty message }">
<h3>${message}</h3>
</c:when>
<c:otherwise>
<h3>none</h3>
</c:otherwise>
</c:choose>
</p>
</body>
</html>
这是我servlet
public class BasicServlet extends HttpServlet {
private IBasicService basicService;
@Override
public void init() throws ServletException {
basicService = new BasicService();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("message", basicService.provideMessage());
req.getRequestDispatcher("/jsp/index.jsp").forward(req, resp); // 23 line
}
}
我建了一个war
并在Tomcat中部署它。但是,当我尝试访问它,我得到很长的堆栈跟踪
javax.servlet.ServletException: Servlet execution threw an exception
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.pack.BasicServlet.doGet(BasicServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.pack.BasicServlet.doGet(BasicServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.pack.BasicServlet.doGet(BasicServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.pack.BasicServlet.doGet(BasicServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
com.pack.BasicServlet.doGet(BasicServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
...
与root cause
java.lang.StackOverflowError
com.pack.BasicServlet.doGet(BasicServlet.java:22)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
....
问题是什么?我很久以前使用了servlets
,所以也许我忘了一些东西...