2016-12-19 5 views
2

Я работаю над API Scala, который может потребовать случайных запросов GET, где URL-адрес длиннее 4kb. Я вижу, что нам нужна настройка play.server.netty.maxInitialLineLength набор, и я попытался установить это 8192 (8 кб), но до сих пор не удается:Play Setting 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.

При этом настройки HTTP-сервера в приложении application.conf не могут применяться, поскольку HTTP-сервер запускается до чтения application.conf (см. Также официальный Play documentation).

У вас есть три варианта, чтобы получить эту работу:

  1. запустить приложение в режиме производства или
  2. обеспечивают конфигурацию в качестве параметра JVM вместо (run -Dplay.server.netty.maxInitialLineLength=8192) или
  3. модифицируют сборки. sbt (devSettings := Map("play.server.netty.maxInitialLineLength" -> "8192")).