Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到tomcat服务器处理的请求总数?_Java_Servlets_Tomcat6 - Fatal编程技术网

Java 如何找到tomcat服务器处理的请求总数?

Java 如何找到tomcat服务器处理的请求总数?,java,servlets,tomcat6,Java,Servlets,Tomcat6,我想托管一个tomcat服务器,它将托管3个web应用程序。我想获得服务器处理的请求总数(对于3个web应用程序中的任何一个)。是否有任何日志可用于检查服务器处理的请求总数(包括HTTP 404请求) 注意:我可以计算每个应用程序处理的请求总数,并获得我的服务器处理的请求总数,但部署在tomcat中的应用程序是第三方的,我无法对其进行任何更改。 基本上,我正在为tomcat服务器构建一个监控应用程序,我必须提供应用程序中服务的总请求 另外,我的第一个想法是超越servlet-api.jar中的H

我想托管一个tomcat服务器,它将托管3个web应用程序。我想获得服务器处理的请求总数(对于3个web应用程序中的任何一个)。是否有任何日志可用于检查服务器处理的请求总数(包括HTTP 404请求)

注意:我可以计算每个应用程序处理的请求总数,并获得我的服务器处理的请求总数,但部署在tomcat中的应用程序是第三方的,我无法对其进行任何更改。

基本上,我正在为tomcat服务器构建一个监控应用程序,我必须提供应用程序中服务的总请求


另外,我的第一个想法是超越servlet-api.jar中的HTTPServletRequest类构造函数,并放置一个静态计数器。由于每个请求都映射到HTTPServletRequest对象,我想它可以完成这项工作。但是,超越HTTPServletRequest是一个好主意吗?或者有任何现有的解决方案可用于此目的吗?

如果您选择覆盖HTTPServletRequest类,而不仅仅是添加一个静态计数器,这将导致每次服务器停机/jvm重新加载时计数器自行重置

我认为最好的选择是从数据库中增加值,或者每次都将值保存在文件中。这样,即使服务器出现问题,您也不会丢失计数,您必须重新启动它


这都是假设还没有一个Apache扩展已经实现了这一点,并且您确实希望修补HTTPServletRequest类。

您可以为此使用一个特殊的过滤器

根据Tomcat官方文档:

The following entries in a web application's web.xml would enable the Request Dumper 
filter for all requests for that web application. If the entries were added to 
CATALINA_BASE/conf/web.xml, the Request Dumper Filter would be enabled for all web 
applications.

您可以编写一个非常简单的,但必须将它添加到每个上下文中,并且结果将独立计算,我认为。假设还没有任何apache扩展,您的答案非常好..+1