首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat 7中内存泄漏Grails的应用

Tomcat 7中内存泄漏Grails的应用
EN

Stack Overflow用户
提问于 2014-03-09 18:21:58
回答 2查看 2.5K关注 0票数 2

我在生产中有一个grails (v2.1.5)应用程序,工作正常,我可以重新部署,但我已经更新了应用程序(一些更改),当我部署新的war时,我发现内存泄漏错误,服务器启动但应用程序不工作(浏览器中的页面只是一个withe页面),我试图重新启动实例,停止所有服务……,

我只能重新部署旧的战争。我怎么才能解决这个问题?

谢谢。

错误:

2014年3月9日下午4:02:14 org.apache.catalina.core.StandardContext startInternal startInternal: Error listenerStart 2014年3月9日4:07:17 PM org.apache.catalina.core.StandardContext startInternal严重:由于先前的错误,上下文[]启动失败 2014年3月09,4:07:17 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc clearReferencesJdbc: web应用程序[]注册了JDBC驱动程序com.mysql.jdbc.Driver,但在web应用程序停止时未能将其注销。为了防止内存泄漏,已强制取消JDBC驱动程序的注册。 2014年3月9日下午4:07:17 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads严重: web应用程序[]似乎启动了一个名为废弃的连接清理线程,但未能阻止它。这很可能造成内存泄漏。 2014年3月9日下午4:07:17 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads : web应用程序[]似乎启动了一个名为net.sf.ehcache.CacheManager@61783b69的线程,但未能阻止它。这很可能造成内存泄漏。 2014年3月9日下午4:07:17 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads : web应用程序[]似乎启动了一个名为com.padelsix.SecRole.data的线程,但未能阻止它。这很可能造成内存泄漏。

EN

回答 2

Stack Overflow用户

发布于 2016-08-11 13:38:54

web应用程序/services似乎启动了一个名为[net.sf.ehcache.CacheManager@37ce6a10]的线程,但未能阻止它。这很可能造成内存泄漏。在我们使用基于注释的配置的基于groovy的spring应用程序中,解决方案是使用类中的上下文注册net.sf.ehcache.constructs.web.ShutdownListener类,该上下文通过重写的onStartup()方法扩展WebApplicationInitializer,如下所示:

代码语言:javascript
复制
import net.sf.ehcache.constructs.web.ShutdownListener
import org.springframework.web.WebApplicationInitializer
...

public class CustomWebApplicationInitializer implements WebApplicationInitializer {
...

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    ...
    createContext(...)
    ...
}

private AnnotationConfigWebApplicationContext createContext(final Class... annotatedClasses) {
    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext()
    context.register(annotatedClasses)
    context.register(ShutdownListener)
    return context
}
}
票数 2
EN

Stack Overflow用户

发布于 2014-03-09 19:22:58

主要问题不是潜在的内存泄漏,而是日志的第一部分:

2014年3月9日下午4:02:14 org.apache.catalina.core.StandardContext startInternal startInternal: Error listenerStart 2014年3月9日4:07:17 PM org.apache.catalina.core.StandardContext startInternal严重:由于先前的错误,上下文[]启动失败

错误“严重:错误listenerStart”通常意味着servlet上下文侦听器(在启动时运行)出现了一个错误,阻止了webapp的启动。

查找catalina.outlocalhost.<date>.log中的错误。您可能需要启用其他日志记录以查找此错误的根本原因。谷歌的“严厉:错误的listenerStart”,并寻找特定的说明,您的版本的Tomcat。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22286181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档