首页 > 解决方案 > 在 glassfish 上设置服务器缓冲区大小

问题描述

我想通过 websockets 传输多达 16MB 的大文件。当我尝试发送大于 3MB 的文件时,出现以下错误:

Warning: Unexpected error, closing connection.
java.lang.IllegalArgumentException: Buffer overflow.
at org.glassfish.tyrus.core.Utils.appendBuffers(Utils.java:346)
at org.glassfish.tyrus.core.TyrusWebSocketEngine$TyrusReadHandler.handle(TyrusWebSocketEngine.java:523)

我读过可以通过添加以下内容在 glassfish-web.xml 文件中更改缓冲区大小:

<param-name>org.glassfish.tyrus.servlet.incoming-buffer-size</param-name>
<param-value>17000000</param-value>

进入:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
    <context-root>/PROJECT</context-root>
</glassfish-web-app>

但这对我没有用。还有其他选择还是我做错了什么。

标签: websocketserverglassfishbuffer

解决方案


推荐阅读