3

我正在尝试将 Play 2.5 版本迁移到 2.6.2。我不断收到 URI-length 超出错误。任何人都知道如何覆盖这个?

我在 Akka 设置下尝试过,但仍然没有运气。

play.server.akka{
http.server.parsing.max-uri-length = infinite
http.client.parsing.max-uri-length = infinite      
http.host-connection-pool.client.parsing.max-uri-length = infinite      
http.max-uri-length = infinite
max-uri-length = infinite
}
4

3 回答 3

5

只需添加

akka.http {
  parsing {
    max-uri-length = 16k
  }
}

到你的application.conf. 该前缀play.server仅用于将 Akka-HTTP 集成到 Playframework 中的一小部分便利功能,例如play.server.akka.requestTimeout. 这些都记录在配置 Akka HTTP 服务器后端文档中。

于 2017-07-25T08:25:14.327 回答
2

由于标头长度超过默认的 8 KB(8192),我收到错误消息。在 build.sbt 中添加了以下内容,它对我有用:D

javaOptions += "-Dakka.http.parsing.max-header-value-length=16k"

如果其他选项不起作用,您可以尝试类似的 uri 长度

于 2019-11-26T21:47:11.673 回答
1

我花了很长时间才弄清楚。在文档中找不到它。

这是一个片段(已确认与 play 2.8 一起使用),application.conf它也可以通过环境变量进行配置,并且适用于dev和 prod 模式:

# Dev Mode
play.akka.dev-mode.akka.http.parsing.max-uri-length = 16384
play.akka.dev-mode.akka.http.parsing.max-uri-length = ${?PLAY_MAX_URI_LENGTH}

# Prod Mode
akka.http.parsing.max-uri-length = 16384
akka.http.parsing.max-uri-length = ${?PLAY_MAX_URI_LENGTH}

然后,您可以编辑配置或使用刚刚设置的已部署应用程序PLAY_MAX_URI_LENGTH,它是动态可配置的,无需修改命令行参数。

env PLAY_MAX_URI_LENGTH=16384 sbt run
于 2020-08-13T07:31:15.460 回答