当前位置: 首页 > 知识库问答 >
问题:

StackOverflow错误的Spring tomcat启动异常

齐铭
2023-03-14

我正在使用tomcat 1.7,它已经工作得很好了。今天我重新启动tomcat,让我低于StackOverflow错误。错误信息看起来像log4j循环。
任何帮助都将不胜感激。

org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
 java.lang.StackOverflowError
        at java.util.HashMap.hash(HashMap.java:339)
        at java.util.HashMap.get(HashMap.java:557)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:58)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.apache.log4j.Category.<init>(Category.java:57)
        at org.apache.log4j.Logger.<init>(Logger.java:37)
        at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
        at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.apache.log4j.Category.<init>(Category.java:57)
        at org.apache.log4j.Logger.<init>(Logger.java:37)
        at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
        at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.apache.log4j.Category.<init>(Category.java:57)
        at org.apache.log4j.Logger.<init>(Logger.java:37)
        at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
        at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.apache.log4j.Category.<init>(Category.java:57)
        at org.apache.log4j.Logger.<init>(Logger.java:37)
        at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
        at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.apache.log4j.Category.<init>(Category.java:57)
        at org.apache.log4j.Logger.<init>(Logger.java:37)
        at org.apache.log4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:43)
        at org.apache.log4j.LogManager.getLogger(LogManager.java:45)
        at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
        at org.apache.log4j.Category.<init>(Category.java:57)
        at org.apache.log4j.Logger.<init>(Logger.java:37)

我有日志库

org.slf4j:slf4j-api:1.6.6
org.slf4j:jcl-over-slf4j:1.6.6
org.slf4j:slf4j-log4j12:1.6.6
log4j:log4j:1.2.15

共有2个答案

顾鸣
2023-03-14

排除spring boot starter web中的spring boot starter日志依赖项

白昊东
2023-03-14

您的依赖项列表(包括可传递的依赖项)必须同时包含以下两项:

  • log4j-over-slf4j:一个log4j 1.2替代品,它将所有内容发送到slf4j,

因此无限循环。您在问题中提到的log4j工件没有被考虑在内(它必须列在log4j-over-slf4j之后的类路径上)。

删除log4j-over-slf4j,您就会没事了。

 类似资料:
  • 我在java中使用play框架(ebean是我的ORM),我有这个类: 我正在尝试使用Gson库对其进行序列化。我试着这么做 但我总是会犯这样的错误: 我读了很多关于这方面的书,我知道在序列化Reservation对象时,可能会在某个地方发生无限循环,但由于该对象与任何其他类没有任何关系,我不明白为什么会发生这种情况。

  • 问题内容: 我是Java的新手。我正在编写一个类,其中构造函数必须检查price参数并确保它不是负数。如果它是负数,则必须将价格设置为零。我检查价格时收到stackoverflow错误。我可以为我做错的事寻求帮助吗? 问题答案: 您的方法将自行调用而不是进行检查。在这种情况下,这导致无限递归。

  • 我已经知道有很多问题都在问同样的问题,但它们对我不起作用- 它给出堆栈溢出错误。 有用但不合适的答案- 1)添加前的代码和添加后的代码-这一个作品,但不正常,应用程序变得非常慢。 还有其他方法可以帮我吗?谢谢。

  • 我在启动spring boot应用程序时遇到以下错误。这是我的第一个spring boot项目。因此,我不确定错误以及如何修复它。 申请启动失败 描述: 配置为侦听端口8080的Tomcat连接器无法启动。端口可能已在使用中,或者连接器可能配置错误。 行动: 验证连接器的配置,识别并停止在端口8080上侦听的任何进程,或者将此应用程序配置为在另一个端口上侦听。

  • 问题内容: 我正在使用mapstruct映射我的实体和dto类…我在mapper类上存在循环问题… 我没有想法该怎么办…这是我的映射器课程 我的实体类… DTO与我的实体类具有相同的属性… 堆栈轨迹 有人可以帮助我确定为什么循环吗? 问题答案: 和之间存在循环依赖关系。您有3种可能性来解决周期: 一个映射器将始终忽略循环字段。我看到您在的清单中。您可以通过在映射器中忽略它们。 您将拥有显式映射,这