【发布时间】:2018-12-17 15:11:21
【问题描述】:
我在 Tomcat 8.5 上有一个带有 jdk1.8.0_171 的休息网络服务。我通过浏览器(例如 mozilla)执行了 web 服务,但它没有显示 json 输出。好吧,对于 Tomcat/Java,json 输出被认为很大。
所以在我添加的 tomcat/bin/catalina.sh 文件上:
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Xms256m -Xmx1024m"
除了文件包含:
if [ -z "$JSSE_OPTS" ] ; then
JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"
fi
另外,tomcat 服务器状态显示: 可用内存:139.46 MB 总内存:247.56 MB 最大内存:989.87 MB
Memory Pool Type Initial Total Maximum Used
Eden Space Heap memory 68.31 MB 68.37 MB 273.06 MB 28.33 MB (10%)
Survivor Space Heap memory 8.50 MB 8.50 MB 34.12 MB 4.90 MB (14%)
Tenured Gen Heap memory 170.68 MB 170.68 MB 682.68 MB 74.84 MB (10%)
Code Cache Non-heap memory 2.43 MB 36.00 MB 240.00 MB 35.52 MB (14%)
Compressed Class Space
Non-heap memory 0.00 MB 11.87 MB 1024.00 MB 11.10 MB (1%)
Metaspace Non-heap memory 0.00 MB 92.62 MB -0.00 MB 88.85 MB
Spring mvc 用于生成大小为 334273 个字符的 json 输出。代码没有错误(Java Exception)
那么在这种情况下缺少什么?如何增加休息服务的内存使用量?在我的本地电脑上,使用相同的服务/战争和逻辑效果很好
问候
【问题讨论】:
-
"json 输出被认为很大" 是什么意思?你有错误吗?如果是这样,请编辑问题并显示它。
-
为什么你认为这是内存问题?
-
你是如何生成 JSON 的?真的有多大?如果很大,您是否考虑过使用 streaming 来生成 JSON?
-
在 server.xml 中添加 maxHttpHeaderSize="100000"。我希望这能解决您的问题
标签: java rest tomcat java-8 tomcat8