tomcat 启动时报错:To prevent a memory leak, the JDBC Driver has been forcibly unregistered

在启动tomcat时,报错:



五月 04, 2017 10:56:15 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-nio-8110"]
五月 04, 2017 10:56:15 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8011"]
五月 04, 2017 10:56:15 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 75562 ms
五月 04, 2017 10:56:15 上午 org.apache.catalina.core.StandardServer await
严重: StandardServer.await: create[localhost:8012]: 
java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
at org.apache.catalina.startup.Catalina.await(Catalina.java:779)
at org.apache.catalina.startup.Catalina.start(Catalina.java:725)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)


五月 04, 2017 10:56:15 上午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-nio-8110"]
五月 04, 2017 10:56:15 上午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-apr-8011"]
五月 04, 2017 10:56:15 上午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
五月 04, 2017 10:56:16 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/bvrfis_zc] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
五月 04, 2017 10:56:16 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/bvrfis_zc] registered the JDBC driver [com.microsoft.jdbc.sqlserver.SQLServerDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
五月 04, 2017 10:56:16 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/bvrfis_zc] appears to have started a thread named [FileWatchdog] but has failed to stop it. This is very likely to create a memory leak.
五月 04, 2017 10:56:16 上午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [/bvrfis_zc] created a ThreadLocal with key of type [javax.faces.context.FacesContext$1] (value [javax.faces.context.FacesContext$1@22d21372]) and a value of type [com.sun.faces.config.InitFacesContext] (value [com.sun.faces.config.InitFacesContext@dfab33a]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
五月 04, 2017 10:56:16 上午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-nio-8110"]
五月 04, 2017 10:56:16 上午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["ajp-apr-8011"]
五月 04, 2017 10:56:16 上午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-nio-8110"]
五月 04, 2017 10:56:16 上午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-apr-8011"]


错误原因:网络上存在其他的j解释,可以参考博客 http://blog.csdn.net/flyfish778/article/details/9164285。

我的错误是由于这个tomcat已经启动了。关闭后,可以正常启动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一条警告信息,意思是在 Web 应用程序停止,虽然已经注册了 JDBC 驱动程序 [oracle.jdbc.oracledriver],但未能注销它。为了防止内存泄漏,强制注销了 JDBC 驱动程序。 ### 回答2: 这段话的意思是,在 web 应用程序停止,虽然已经成功地注册了 Oracle 数据库的 JDBC 驱动程序 [oracle.jdbc.oracledriver],但是在停止未能成功注销该驱动程序,从而导致可能会导致内存泄漏的情况发生。为了避免这种情况的发生,系统将强制注销该 JDBC 驱动程序。 JDBC 驱动程序是一种连接数据库的工具,它可以让我们建立连接、发送 SQL 命令、获取和处理查询结果。在 web 应用程序中,我们通常会把 JDBC 驱动程序注册到应用程序中,以便我们在需要访问数据库能够正常使用它。 然而,当 web 应用程序停止,我们也需要注销已经注册的 JDBC 驱动程序,以便释放相关的资源,避免内存泄漏的情况发生。如果我们没有正确注销 JDBC 驱动程序,就有可能会造成系统资源的浪费,从而影响应用程序的性能和稳定性。 以上述情况为例,系统检测到在停止 web 应用程序未能成功注销已经注册的 JDBC 驱动程序,因此就会强制注销该驱动程序,以避免内存泄漏的情况发生。这样做可以保证系统的稳定性和安全性,避免不必要的资源浪费,提高应用程序的性能。 ### 回答3: 该消息是在Web应用程序停止Tomcat服务器系统自动生成的警告消息。 JDBC是Java Database Connectivity的缩写,是Java程序用于在数据库中执行操作的API集合。当应用程序运行,必须先将JDBC驱动程序注册到JVM的内存中,以便在需要连接到数据库在应用程序和数据库之间建立通信。该警告消息指出,在注册了JDBC驱动程序以后,当web应用程序停止未成功注销它,因而可能导致内存泄漏的风险。 内存泄漏是指有一个运行中的程序使用了系统的内存资源,但是在使用过程中并未正确释放资源,导致系统中的内存资源被无限制地占用,最终可能导致系统崩溃。在本例中,应用程序在注册JDBC驱动程序成功后,未正确地注销JDBC驱动程序,导致被占用的JVM内存越来越多,并可能在长间运行的情况下导致内存不足,程序执行出现误。 为了避免这种情况的发生,在web应用程序停止Tomcat服务器系统强制注销该JDBC驱动程序,以释放占用的系统内存资源。因此,如果您看到了这个消息,您应该检查您的应用程序代码,确保在应用程序运行期间,所有注册的JDBC驱动程序在应该注销它们的候都进行了正确的注销。这是一个很小的问题,但是如果不及处理,可能会导致应用程序的严重误,影响到应用程序的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值