1

Request header is too large我时不时地从 glassfish得到一个 IllegalArgumentException: 。我知道如何解决这个问题 - 需要切换到POST请求。关于这方面的好文章已经够多了。

但我的问题是我不知道是谁向我发送了这个请求。有没有办法在此错误消息中添加更多详细信息?IP地址就足够了。我猜这个错误发生在我的 servlet 代码被处理之前。因此,我无法自行将 IP 地址添加到错误消息中。

谢谢你的帮助。

4

4 回答 4

0

一种方法是使用 aThreadLocal并将其实例HttpServletRequest放入请求处理的开始(可能是一个servletFilter)。

这样,在错误处理程序中,您可以HttpServletRequest 从线程局部变量中获取的实例,并且 - 例如 - 检查发送者的 IP 地址。

于 2012-06-27T09:25:02.140 回答
0

在执行 post 或 put 请求时,假设通过线路发送的数据大小没有限制。

大多数 Web 服务器都有这些值的默认配置。默认情况下,max-post-size in glassfish 3is8192 bytesglassfish 2.1is 4096 bytes

将以下属性添加到下的 http-listener 元素domain.xml

<property name="maxPostSize" value="">

如果已经存在,则增加该值。

于 2012-06-27T09:29:41.053 回答
0

我将从启用访问日志记录开始:

asadmin set configs.config.server-config.http-service.access-logging-enabled=false

你还应该设置你的日志格式

asadmin configs.config.server-config.http-service.access-log.format=XXXX

希望这有助于追踪问题

于 2012-06-27T09:42:46.617 回答
0

绝对在这种情况下,控件甚至不会让应用程序应用一些逻辑来知道远程地址。只有您使用的服务器在日志中提供这些信息。

您使用的任何服务器都会在Web 访问日志中记录请求。

默认情况下,这些日志条目还将具有发出请求的客户端的远程地址。如果不存在,请咨询服务器团队如何配置在 Web 访问日志中记录远程地址。

参考:

于 2012-06-27T10:28:39.053 回答