经过BASE64当激活启动问题 - 游戏框架websevice(Play framework web

2019-10-23 03:06发布

我创建使用与Java的游戏框架的Web服务的API。 我创建了服务顺利。

我做了什么:

在一个Web服务请求,我已经派人以base64字符串。 如果我在请求中所传递的base64字符串,我得到了下面的异常。

[warn] p.nettyException - Handling TooLongFrameException
org.jboss.netty.handler.codec.frame.TooLongFrameException: An HTTP line is larger than 4096 bytes.

在网上搜索后,我得到了以下的解决方案。

export SBT_OPTS="-Xms1024m -Xmx3084m -XX:MaxPermSize=1024m -Dhttp.netty.maxInitialLineLength=8192"

设置SBT_OPTS后,我可以通过以base64字符串中的请求和接收它在服务器端成功。

我用下面的命令用于调试的目的- "activator -jvm-debug 9999 run" 。 因此,它是工作的罚款。

什么是问题:

但现在我试图部署这是服务。 所以,我用下面的命令- "activator start" (或) "activator start $SBT_OPTS" (或) "activator $SBT_OPTS start"

当我使用这个命令来启动该服务,我得到了同样的问题之上- "An HTTP line is larger than 4096 bytes."

谁能帮我解决这个问题?

Answer 1:

请添加下面一行在你application.conf,那么你就不需要在运行时设置的任何配置

parsers.text.maxLength = 7024K

它接受高达7MB的请求数据,如果你需要更多,你可以设置它。 https://www.playframework.com/documentation/2.3.x/JavaBodyParsers



文章来源: Play framework websevice - activator start issue when passing the base64