问题标签 [tomcat-valve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何识别活动(长时间运行)HTTP 请求的 URI?
想象一个 web 应用程序(有时)需要很长时间才能响应一些 HTTP(POST/GET/etc)请求 - 您如何在服务器端找到这样的请求?
到目前为止,我已经使用 tomcat AccessLogValve 来查看“已完成”的请求,但这并不能让我看到“进行中”(卡住)的请求 :(
例如:
netstat
我能够识别长期存在的套接字,这可以让我计算当前卡住的请求(虽然不是 URI),但是 HTTP 保持活动使这种方法无效kill -3 <server_pid>
我可以多次堆栈转储应用程序服务器(我可以在 Web 应用服务器(替代主机名、克隆证书)前面注入一个路由器/代理,这将向我显示当前正在运行的调用——这不是一个简单的方法
我可能会陷入
tcpdump
持续运行并解析流量以保留当前运行的 URI 列表,但是如何处理 httpS 呢?我发现最接近的是 tomcat7 的StuckThreadDetectionValve,它会定期报告长时间运行的调用,但它输出堆栈跟踪(不是 URI)并且不提供“实时”数据(例如,仅定期轮询,淹没日志并让我们查看状态1-60 秒前,但不是“现在”)
也许我只是缺少/忽略了重要/核心/基本的 tomcat 功能之一?或者也许 weblogic(或任何其他应用程序服务器)为此提供了强大的功能?
没有这样简单而重要的功能,我有点迷失了。帮助?请?
jboss - JBoss AS7 @Inject bean into Valve
是否可以将@Inject
无状态会话 bean 转换为 的子类AuthenticatorBase
?
我使用 JBoss 作为 7.1.1。
我的代码如下所示:
...
使用控制器对象会导致NullPointerException
.
java - 阀门配置在tomcat中不起作用?
我使用 url 访问我的应用程序,即https://myIPAddress:8443/myWebApp/
我创建了myWebApp.xml
包含以下上下文元素的文件并将其放在<tomcat_home>\conf\Catalina\localhost\
MySSLAuthenticator.class 位于 jar 文件下,该文件位于<tomcat_home>\lib
但看起来 MySSLAuthenticator 并没有出现,因为我得到以下错误,我看到 SSLAuthenticator 的实例不是 MySSLAuthenticator
我不确定这里缺少什么?tomcat 版本是 6.0.35
tomcat - Tomcat 阀门 - java.lang.NoSuchMethodError
雄猫 6.0.36
启动我的 tomcat 时出现 java.lang.NoSuchMethodError。
我的 server.xml 中有这个:
我收到此错误:
tomcat7 - 无法使自定义阀门工作 Tomcat7
我正在尝试创建一个 Valve 来收集每个服务器请求的一些信息。
我正在关注这个例子:http: //goo.gl/9wwylq
我按照以下步骤操作:
- 创建一个 Maven Java 应用程序。添加 tomcat-catalina 依赖
- 创建您的 Java 类并从 ValveBase 扩展它。
- 实现调用(请求请求,响应响应)
- 构建您的库 (.jar) 文件
- 在 ${tomcat.home}/lib 目录中安装库。
配置 server.xml 以使用您的新 Valve。例如:
阀门类名称="com.bluelotussoftware.tomcat.ProcessingValve"
我试图把它放在主机标签和引擎一中..但似乎没有任何效果,我无法登录,也无法在调试模式下停止..
你们认为我可能会丢失什么吗?
java - 扩展 ValveBase 类:java.lang.ClassNotFoundException
我在 java 中创建了一个 web 基础应用程序,我使用了 java 的 ValveBase 类。代码如下:
现在我编译了该文件并创建了该项目的 jar 文件并将其放入服务器的 lib 文件夹中。我更改的 server.xml 文件的一部分:
现在我创建一个新项目并运行它。它给了我如下错误:
java - 使用 tomcat 阀门重定向 POST 请求
我需要重定向
https://ipaddress/index.jsp to https://ipaddress/v1/index.jsp
Tomcat 版本:7.0.32
我在 server.xml 中配置了一个阀门
<Valve className="com.mycompnay.tomcatvalve.RedirectValve" portal="v1" />
在这里,我有一个扩展 ValveBase 的类,并在匹配一些模式后执行 response.sendRedirect。这适用于 GET 请求。但是如何重定向 POST 请求。
提前致谢
mysql - tomcat 7 jdbc访问日志阀不工作
您好我正在尝试使用 db 来访问我的 tomcat 应用程序中的日志记录。
我遵循了tomcat文档。https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/JDBCAccessLogValve.html
服务器似乎可以正常启动,但我没有看到表中创建了任何条目。但我可以看到 tomcat 正在获取连接参数(如果我提供无效的连接参数,服务器不会启动)
这是我用于访问日志记录的 server.xml 配置
我正在使用组合模式,并且创建的表具有文档中指定的确切架构 -
Catalina.out 似乎没有记录任何对此上下文有用的信息。
PS 我知道数据库日志记录有很多故障点,但我的应用程序的主数据库与这个相同。所以故障点是共享的。
tomcat - 在 AccessLogValve 上设置旋转阈值
我们可以在 AccessLogValve 上设置基于大小的日志轮换,而不是基于天/时间吗?
附加问题:
我在 log4j 的 RollingFileAppender 中寻找最大备份索引标志之类的东西。
我们应该在外部监控以删除 access_log* 文件吗?
java - 多个 Tomcat 身份验证器阀门
在同一个 Tomcat 上下文配置中是否可以有多个身份验证器阀门?我知道您可以通过 拥有多个领域CombinedRealm
,但是不同的身份验证方法呢?
我必须更新一个 Web 应用程序,以便它可以使用新的身份验证源,同时仍然使用旧的身份验证源来回退。
这是我目前在应用程序的 context.xml 中的内容:
似乎NewAuthenticator
拒绝了用户的请求,LegacyAuthenticator
从未调用过。我想这是预期的行为,但有没有另一种方法可以做到这一点?
细节:
- 雄猫 6.0
- 我必须使用 Authtenticators,因为两个自定义系统都在 HTTP 请求中设置了确定身份验证成功/失败的值,并且我需要创建自定义 Tomcat 安全主体来存储角色。
- 两种身份验证源都是自定义的和非标准的。我必须编写自己的身份验证器。