SSM 框架内存泄露,运行一段时间就报错

huige0 发布于 2015/04/23 17:17
阅读 2K+
收藏 0

运行环境:eclipse jee 32位 , jdk1.8 ,tomcate1.7

描述     :项目运行一段时间后,就会报这个错误

错误信息:

 四月 23, 2015 3:10:51 下午 org.apache.catalina.loader.WebappClassLoader modified
严重:     Resource '/WEB-INF/classes/com/soarocean/jsbuoyrvice/IUserService.class' is missing
四月 23, 2015 3:10:51 下午 org.apache.catalina.core.StandardContext reload
信息: Reloading Context with name [/jsBuoy] has started
四月 23, 2015 3:10:51 下午 org.apache.catalina.core.ApplicationContext log
信息: Destroying Spring FrameworkServlet 'SpringMVC'
[org.springframework.web.context.support.XmlWebApplicationContext] - Closing WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Thu Apr 23 14:04:31 CST 2015]; parent: Root WebApplicationContext
DefinedSelfListentor is death@@@!!!
四月 23, 2015 3:10:51 下午 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
[org.springframework.web.context.support.XmlWebApplicationContext] - Closing Root WebApplicationContext: startup date [Thu Apr 23 14:04:28 CST 2015]; root of context hierarchy
四月 23, 2015 3:10:51 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/jsBuoy] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
四月 23, 2015 3:10:51 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/jsBuoy] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.
四月 23, 2015 3:10:52 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile

信息: validateJarFile(D:\正在进行的项目\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsBuoy_1\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javaxrvlet/Servlet.class
四月 23, 2015 3:10:52 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\正在进行的项目\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsBuoy_1\WEB-INF\lib\tomcat-servlet-api-7.0.56.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javaxrvlet/Servlet.class
四月 23, 2015 3:10:53 下午 org.apache.catalina.core.ApplicationContext log
信息: No Spring WebApplicationInitializer types detected on classpath
四月 23, 2015 3:10:53 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Error configuring application listener of class com.soarocean.jsbuoy.listenner.DefinedSelfListentor
java.lang.ClassNotFoundException: com.soarocean.jsbuoy.listenner.DefinedSelfListentor
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4932)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:4033)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:425)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1546)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1556)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1556)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1524)
at java.lang.Thread.run(Unknown Source)

四月 23, 2015 3:10:53 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Skipped installing application listeners due to previous error(s)
四月 23, 2015 3:10:53 下午 org.apache.catalina.core.StandardContext startInternal
严重: Error listenerStart
四月 23, 2015 3:10:53 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [/jsBuoy] startup failed due to previous errors
四月 23, 2015 3:10:53 下午 org.apache.catalina.core.StandardContext reload
信息: Reloading Context with name [/jsBuoy] is completed
加载中
0
huige0
huige0

我的配置WEB.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>Archetype Created Web Application</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-mybatis.xml</param-value>
  </context-param>
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <async-supported>true</async-supported>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
  </listener>
  <!-- 自定义监听器 经过测试配置成功!!!-->
  <listener>
  <listener-class>com.soarocean.jsbuoy.listenner.DefinedSelfListentor</listener-class>
  </listener> 
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>/login.jsp</welcome-file>
  </welcome-file-list>
</web-app>

0
skyim
skyim
java.lang.ClassNotFoundException: com.soarocean.jsbuoy.listenner.DefinedSelfListentor

DefinedSelfListentor is death@@@!!!

0
huige0
huige0

程序是运行一段时间后才出现这个的,网上说是内存泄露导致的,tomcat中的JreMemoryLeakPreventionListener

禁止就行了。但是这样做虽然解决表面问题,但是内存泄露还是未解决,治标不治本

请问有无更好的办法

0
huige0
huige0

看 16行的这句:

严 重: The web application [/jsBuoy] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.

返回顶部
顶部