【问题标题】:PlayFramework 2.2.6: Advanced HTTP server configuration maxInitialLineLengthPlayFramework 2.2.6:高级 HTTP 服务器配置 maxInitialLineLength
【发布时间】:2016-06-19 13:51:00
【问题描述】:

我们正在尝试向使用 Playframework 2.2.6 实现的 REST API 发送长度大于 4096 字节的 GET 和 POST 请求。

经过长时间的谷歌研究,我们几乎尝试了所有方法,解决方案似乎在通过 play 启动我们的服务器时传递了以下两个参数。我们没有收到关于错误参数的错误消息,但是当我们向 api 发送大请求时,我们仍然收到错误

TooLongFrameException: An HTTP line is larger than 4096 Bytes

我们正在通过以下命令运行服务器

<PathToPlay>\play-2.2.6\play.bat -org.jboss.netty.maxHeaderSize:102400 -org.jboss.netty.maxInitialLineLength:102400 run

【问题讨论】:

  • 尝试使用 -Dhttp.netty.maxInitialLineLength=102400 运行 sbt
  • 你知道 sbt 在 Play 中的调用位置吗?这是我们第一次使用 PlayFramework。
  • 您处于生产模式,所以,我的错,它不在 sbt 中,但您可以提供与您完全相同的方式,即替换 -org.jboss.netty.maxInitialLineLength:102400 by -Dhttp.netty.maxInitialLineLength=102400
  • 如果我们使用 = 而不是 : 我们会得到一个无效的参数错误并建议我们使用 :。如果我们使用 Dhttp.netty.maxInitialLineLength=102400,我们会收到一个警告,系统属性无效。
  • 好的,很抱歉,Play 上的选项似乎不一样! 2.2 那玩! 2.4(因为它适用于 Play!2.4)。而“:”而不是“=”可能是因为您使用的是 Windows。

标签: rest playframework netty playframework-2.2


【解决方案1】:

首先,您启动应用程序的路径似乎不正确。当您create a new play application play.batactivator.bat 文件会自动在您的项目根文件夹中创建。因此无需在项目文件夹之外调用特定的播放安装运行时。

设置最大正文和标头长度的参数可以在play documentation中找到。

http.netty.maxInitialLineLength - HTTP 请求首行的最大长度,默认为 4096

http.netty.maxHeaderSize - 整个 HTTP 标头的最大大小,默认为 8192

开发模式

开发模式调用启动您的应用程序

/path/to/project/play run -Dhttp.netty.maxInitialLineLength=102400 -Dhttp.netty.maxHeaderSize=102400

如果您使用 Activator 创建项目,请将 play 替换为 activator

生产模式

在您使用play distpublished your application 用于生产后,您可以通过调用来设置参数

/path/to/publishedApp/bin/<nameOfApp> -Dhttp.netty.maxInitialLineLength=102400 -Dhttp.netty.maxHeaderSize=102400

【讨论】:

  • 我们从大学得到了这个项目,所以我们没有从头开始,有趣的是,我们的项目根文件夹中没有任何内容。如您所述,我们已尝试启动服务器,但它不起作用:(
  • 能否请您粘贴project/plugins.sbt 文件的内容,特别是com.typesafe.play sbt-plugin 版本?
  • // 注释以在初始化期间获取更多信息 logLevel := Level.Warn // Typesafe 存储库解析器 += "Typesafe repository" at "repo.typesafe.com/typesafe/releases" // 使用 Play sbt 插件进行播放项目 addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.6")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多