【问题标题】:p.nettyException - Handling TooLongFrameException - Play! frameworkp.nettyException - 处理 TooLongFrameException - 玩!框架
【发布时间】:2015-05-25 05:32:24
【问题描述】:

我正在尝试开始使用 Play!框架,但是当我尝试使用activator run 启动服务器时,出现以下错误。我正在使用激活器 1.2.12。

[warn] p.nettyException - Handling TooLongFrameException
org.jboss.netty.handler.codec.frame.TooLongFrameException: HTTP header is larger than 8192 bytes.
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeader(HttpMessageDecoder.java:624) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:531) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:195) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:102) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) ~[netty-3.9.3.Final.jar:na]
[error] p.nettyException - Exception caught in Netty
java.lang.IllegalArgumentException: Header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f 
    at org.jboss.netty.handler.codec.http.HttpHeaders.valideHeaderNameChar(HttpHeaders.java:1040) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.DefaultHttpHeaders.hash(DefaultHttpHeaders.java:63) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.DefaultHttpHeaders.add(DefaultHttpHeaders.java:140) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:536) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:195) ~[netty-3.9.3.Final.jar:na]
[warn] p.nettyException - Handling TooLongFrameException
org.jboss.netty.handler.codec.frame.TooLongFrameException: HTTP header is larger than 8192 bytes.
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeader(HttpMessageDecoder.java:624) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:531) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:195) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:102) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) ~[netty-3.9.3.Final.jar:na]
[error] p.nettyException - Exception caught in Netty
java.lang.IllegalArgumentException: Header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f 
    at org.jboss.netty.handler.codec.http.HttpHeaders.valideHeaderNameChar(HttpHeaders.java:1040) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.DefaultHttpHeaders.hash(DefaultHttpHeaders.java:63) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.DefaultHttpHeaders.add(DefaultHttpHeaders.java:140) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:536) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:195) ~[netty-3.9.3.Final.jar:na]
[warn] p.nettyException - Handling TooLongFrameException
org.jboss.netty.handler.codec.frame.TooLongFrameException: HTTP header is larger than 8192 bytes.
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeader(HttpMessageDecoder.java:624) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:531) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:195) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:102) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) ~[netty-3.9.3.Final.jar:na]
[error] p.nettyException - Exception caught in Netty
java.lang.IllegalArgumentException: Header name cannot contain the following prohibited characters: =,;: \t\r\n\v\f 
    at org.jboss.netty.handler.codec.http.HttpHeaders.valideHeaderNameChar(HttpHeaders.java:1040) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.DefaultHttpHeaders.hash(DefaultHttpHeaders.java:63) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.DefaultHttpHeaders.add(DefaultHttpHeaders.java:140) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readHeaders(HttpMessageDecoder.java:536) ~[netty-3.9.3.Final.jar:na]
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:195) ~[netty-3.9.3.Final.jar:na]

有熟悉这个错误的人吗?

我注意到所有激活剂种子都会发生这种情况。运行activator new 后无需编辑任何文件。我也更新到最新版本的 activator 和 scala,但没有运气。

【问题讨论】:

  • 是的,我们也有这些。可能是浏览器机器上太多的 cookie 导致了它。还在调查中……你是不是在activator前面使用了nginx?
  • 嘿,我只是使用默认激活器。我设法通过使用地址yourusername.local:9000 而不是localhost:3000 来加载应用程序。不知道为什么会这样,但你可以试一试。
  • 我们找出了这些错误的原因:HTTP 请求中的超长 URL 字符串

标签: java scala playframework


【解决方案1】:

请求标头大小超过 8192 字节。您可以通过在运行应用程序时在系统属性中添加-Dhttp.netty.maxHeaderSize:xx(xx = 根据您的请求标头大小所需的大小)来设置它。

或者

尝试减小标题大小。检查您在请求中发送的标头。

另请参阅Production Configuration 以在您的application.conf 中配置该值。

【讨论】:

    猜你喜欢
    • 2012-08-17
    • 2012-04-16
    • 2012-11-21
    • 2016-08-26
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多