2016-12-19 36 views
2

我正在研究Scala API,可能需要偶爾的GET請求,其中的URL長度超過4kb。我看到,我們需要設置play.server.netty.maxInitialLineLength集,我試圖將其設置爲8192(8 KB),但仍然失敗:播放設置maxInitialLineLength不起作用

org.jboss.netty.handler.codec.frame.TooLongFrameException: An HTTP line is larger than 4096 bytes. 
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.readLine(HttpMessageDecoder.java:670) ~[netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:184) ~[netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.handler.codec.http.HttpMessageDecoder.decode(HttpMessageDecoder.java:102) ~[netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) ~[netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:485) ~[netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) ~[netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [netty-3.10.5.Final.jar:na] 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [netty-3.10.5.Final.jar:na] 

我們現在正在運行遊戲2.4.8。有什麼我失蹤?

回答

0

我假設你在本地進行測試,並使用run命令開始播放。

執行此操作時,application.conf中的HTTP服務器設置無法應用,因爲在讀取application.conf之前正在啓動HTTP服務器(另請參閱官方Play documentation)。

有三個選項得到這個工作:

  1. 開始在生產模式下的應用程序,或
  2. 提供配置爲JVM參數,而不是(run -Dplay.server.netty.maxInitialLineLength=8192),或
  3. 修改構建。 sbt(devSettings := Map("play.server.netty.maxInitialLineLength" -> "8192"))。