当警告或错误发生时,JBoss不能显示战争名称

时间:2016-12-29 06:46:03

标签: java jsp servlets jboss

我在JBoss服务器上遇到问题。在这个服务器中,有超过10个应用程序正在运行,JBoss会抛出异常或警告。

我怎么能分叉哪个应用程序(战争)抛出错误或警告。是否可以动态显示战争名称以及警告/错误。

以下是我感到困惑的错误,哪个应用程序会抛出这些错误。

11:11:19,361 WARN  [org.jboss.jca.adapters.jdbc.WrappedConnection] (http-web-1377112) Closing a statement you left open, please do your own housekeeping: java.lang.Throwable: STACKTRACE
    at org.jboss.jca.adapters.jdbc.WrappedConnection.registerStatement(WrappedConnection.java:1677)
    at org.jboss.jca.adapters.jdbc.WrappedStatement.<init>(WrappedStatement.java:105)
    at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.<init>(WrappedPreparedStatement.java:69)
    at org.jboss.jca.adapters.jdbc.WrappedCallableStatement.<init>(WrappedCallableStatement.java:68)
    at org.jboss.jca.adapters.jdbc.jdk6.WrappedCallableStatementJDK6.<init>(WrappedCallableStatementJDK6.java:52)
    at org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6.wrapCallableStatement(WrappedConnectionJDK6.java:91)
    at org.jboss.jca.adapters.jdbc.WrappedConnection.prepareCall(WrappedConnection.java:598)
    at ig.charging.SubsCommonBean.isSubscribedSp(SubsCommonBean.java:1114) [classes:]
    at org.apache.jsp.addconsent_jsp._jspService(addconsent_jsp.java:512)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:365) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:309) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:242) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:559) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:511) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
    at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
    at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)
    at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
    at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)

2 个答案:

答案 0 :(得分:0)

在这个实例中,你并没有真正打开或关闭连接。您正在通过数据源(连接池)获取共享连接。 connection.close()只是返回连接池的连接,其中一些其他组件将获取此打开的连接并使用它来执行自己的语句。

拥有连接池的关键在于打开和关闭连接实际上是昂贵的任务(资源和时间),因此每次要访问数据源(通常是数据库)时,您都不希望这样做。

但是,这意味着您应该正确关闭语句以强制执行。

这是一条警告信息。您不需要显式关闭语句,但这意味着它可能实际上不会在您期望的时间执行。希望有所帮助。

如果收到此消息,则表示您已启用跟踪语句,并且您没有关闭ResultSet / Statements。通过数据源上的以下选项启用此跟踪:

<track-statements>true</track-statements>

答案 1 :(得分:0)

您在server.log文件中找到的战争文件名。如果您可以启用JCA跟踪日志记录以查看应用程序代码堆栈跟踪:

<logger category="com.arjuna">
                <level name="TRACE"/>
            </logger>
            <logger category="org.jboss.jca">
                <level name="TRACE"/>
            </logger>
            <logger category="org.jboss.as.connector">
                <level name="TRACE"/>
            </logger>