Tomcat 7.0.47不断抛出错误原因?

时间:2014-01-01 16:49:19

标签: tomcat jdbc ormlite

亲爱的Tomcat大师,

我在我的笔记本电脑中使用tomcat 7.0.47,在VM中,它最初运行良好...但有时它会关闭。

我检查了catalina.yyyy-MM-dd.log,我发现两件事有错:

  1. 有关JDBC连接池的错误,我正在使用ormlite JdbcPooledConnectionSource
  2. 关于访问日志的错误,这个由访问日志引起的错误是最重要的,我发现连续10次左右,之后服务器似乎死了。
  3. 有关Ormlite jdbc conn池的错误是:

    java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1588)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    at com.mysql.jdbc.Connection.realClose(Connection.java:4060)
    at com.mysql.jdbc.Connection.close(Connection.java:1398)
    at com.j256.ormlite.jdbc.JdbcDatabaseConnection.close(JdbcDatabaseConnection.java:144)
    at com.j256.ormlite.jdbc.JdbcPooledConnectionSource.closeConnection(JdbcPooledConnectionSource.java:330)
    at com.j256.ormlite.jdbc.JdbcPooledConnectionSource.closeConnectionQuietly(JdbcPooledConnectionSource.java:341)
    at com.j256.ormlite.jdbc.JdbcPooledConnectionSource$ConnectionTester.testConnections(JdbcPooledConnectionSource.java:494)
    at com.j256.ormlite.jdbc.JdbcPooledConnectionSource$ConnectionTester.run(JdbcPooledConnectionSource.java:439)
    

    虽然有关访问日志的错误如下:

    WARNING: Exception while attempting to add an entry to the access log java.lang.NullPointerException
    at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:512)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:191)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
    

    似乎有某种内存泄漏或某种东西......但是Tomcat突然掉线了。

    有人可以帮忙吗?

    先谢谢。

1 个答案:

答案 0 :(得分:1)

好的,坦率地说,我放弃了旧编码...... 我做的是解决这个问题:

  1. 我不再使用第三方数据库连接池lib,我将其更改为使用内置的Tomcat数据库连接池,并使用JNDI查找从我的代码访问它。 (我希望这样,tomcat会更好地处理它) - >我根据这个site跟踪了我的Tomcat数据库池配置,感谢那个人:)。
  2. 我评论了 server.xml 中的访问日志记录,因此tomcat将不再记录任何访问权限(某些帖子不推荐它,但实际上是什么!),我使用的是Apache日志,因为我正在使用Apache作为我在tomcat中的java web应用程序的反向代理。
  3. 但我仍然愿意接受任何建议。

    由于 溴