Java:StackOverflow在为不存在的 servlet 运行构建时出错



这个让我很困惑。正常工作,突然之间,当我尝试将servlet作为项目的一部分运行时,我在输出日志中得到无尽的循环错误;

03-Jul-2016 18:43:59.464 SEVERE [http-apr-8080-exec-72] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet.service() for servlet xyz threw exception
 java.lang.StackOverflowError
    at javax.servlet.ServletRequestWrapper.getCharacterEncoding(ServletRequestWrapper.java:96)

等等;

at org.tuckey.web.filters.urlrewrite.UrlRewriter.decodeRequestString(UrlRewriter.java:142)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.getPathWithinApplication(UrlRewriter.java:104)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.getNewChain(UrlRewriter.java:171)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
    at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)

错误持续了一段时间。它们只有在我停止Tomcat运行时才会停止。

奇怪的是,列出的servlet已经不存在了。在第一次抛出错误后,我删除了它,然后错误仍然存在。看起来servlet文件xyz在Tomcat中的某个地方卡住了,并且没有更新。

有谁知道如何去调试这样一个问题吗?我似乎什么都试过了。

IDE: Netbeans 8.0.2

问候,迈克尔。

好吧,这是我见过的最奇怪的问题。必须重新安装Tomcat才能使其再次工作。看来雄猫的内裤出问题了。好吧,那几个小时过得很愉快……调试和重新安装

如果有人知道是什么原因导致这样随机的事情,对我自己来说会很有趣,我相信对未来经历过类似事情的其他人来说也是如此。

编辑

最后得到了这个的底部,重写规则作为URLRewriteFilterurlrewrite.xml文件的一部分使用正则表达式的From URL。

提示,请确保在url的末尾添加了开始的^和结束的$字符,并确保url有明显的不同。我有一个规则,从"/abc/123/""/xyz/abc/?p=$",导致重定向循环和Tomcat进入一个无尽的循环,你不能退出-没有重新安装。from应该是"^/abc/123/$",以确保它不匹配。

100%必须重新安装Tomcat。为了找到这个解决方案,我花了2个小时进行调试,但结果并不令人满意。

这里有一个关于如何重新安装的很好的教程。在那之后,你必须右键单击你的项目和解决缺失的web服务器。

最新更新