Tomcat 8 с ошибкой переполнения стека Struts1 - PullRequest
0 голосов
/ 19 сентября 2019

Я обновляю веб-приложение до новой версии PHP (с Zend 2.1.0 до Zend Engine 2.4.0, с Java (1.6.0_43-b01) до Java (1.8.0_222) и Tomcat (6 до версии8). На всех страницах jsp повторяется ошибка, повторяющаяся в журнале:

19-Sep-2019 15:00:29.493 SEVERE [https-jsse-nio-8443-exec-7] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [serv-orig] in context with path [/serv-org] threw exception [org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.StackOverflowError] with root cause
        java.lang.StackOverflowError
                at org.apache.tomcat.util.buf.C2BConverter.convert(C2BConverter.java:138)
                at org.apache.catalina.connector.OutputBuffer.realWriteChars(OutputBuffer.java:458)
                at org.apache.catalina.connector.OutputBuffer.flushCharBuffer(OutputBuffer.java:838)
                at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:308)
                at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:285)
                at org.apache.catalina.connector.CoyoteWriter.flush(CoyoteWriter.java:94)
                at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:172)
                at java.io.PrintWriter.flush(PrintWriter.java:320)
 at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:172)
                at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:856)
                at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:647)
                at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:868)
                at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838)
                at org.apache.jsp.exception_jsp._jspService(exception_jsp.java:508)
                at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
                at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
                at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
                at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)


Я видел много проблем с переполнением стека, поэтому я добавил в заголовок: <% @ page buffer= "none"%> и теперь я, по крайней мере, вижу некоторую загрузку страницы, но все еще в журнале я вижу переполнение стека и все страницы не загружаются. Я начал задаваться вопросом, происходит ли это из-за приложения, использующего Struts1.Я начал изучать возможность преобразования его в Struts2, и это было бы колоссальным усилием.

Итак, вот что у меня есть в моем файле header.jsp:

<%@ page language="java" contentType="text/html" session="true" %>

<%--
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
--%>



<%--<%@ taglib uri="/WEB-INF/struts-tags.tld" prefix="tags" %>
--%>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>

<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ taglib uri="/WEB-INF/fn.tld" prefix="fn" %>



<%--<%@ page buffer="none" %>--%> <%--: default allocation size is not enough --%>

<%@ page buffer="none"%>


<%@ page import="serv.orig.layout.*, serv.orig.bean.sensor.*, serv.orig.bean.data.*, serv.orig.control.*, serv.orig.servlet.*" %>

<%@ page errorPage="exception.jsp" %>

<jsp:useBean id="headerTemplate" scope="request" class="serv.orig.layout.Header">
        <jsp:setProperty name="headerTemplate" property="pageContext" value="<%= pageContext %>" />
</jsp:useBean>

<bean:write name="headerTemplate" property="templates" filter="false" />

<a name="top"></a>

<c:set var="hdrTemplate" value="${headerTemplate.headerTemplate}" />
<%--<c:set var="baseDomain" value="${hdrTemplate.vars['BASE_DOMAIN']}" />--%>
<c:set var="baseDomain" value="https://console01test.serv.test.gov:8443/" />
<c:set var="stylesDir" value="${hdrTemplate.vars['DIR_STYLES']}" />
<c:set var="urlDMAC" value="${hdrTemplate.vars['URL_DMAC']}" />
<%--<c:set var="urlRefreshed" value="${hdrTemplate.vars['URL_PATH']}" />--%>
<c:set var="urlRefreshed" value="refreshed/" />
<c:set var="urlContext" value="${hdrTemplate.vars['URL_CONTEXT']}" />

Дайте мне знать, если вы считаете, что мне следует обновить систему до Struts2, чтобы исправить эту проблему, или это можно исправить с помощью изменения конфигурации.

Заранее спасибо!

Если я посмотрю наодна из страниц в Chrome, которая имеет проблему, где всене появляется я вижу эту ошибку: Не удалось загрузить ресурс: net :: ERR_INCOMPLETE_CHUNKED_ENCODING

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...