Jetty 9 で実行されている CometD サーバーに大きなメッセージ (>130k) を送信しようとしています。サーバーがこの大きなメッセージを受信すると、次の例外が生成されます。
org.eclipse.jetty.websocket.api.MessageTooLargeException: Text message size [130353] exceeds maximum size [65536]
at org.eclipse.jetty.websocket.api.WebSocketPolicy.assertValidTextMessageSize(WebSocketPolicy.java:140)
at org.eclipse.jetty.websocket.common.Parser.assertSanePayloadLength(Parser.java:127)
at org.eclipse.jetty.websocket.common.Parser.parseFrame(Parser.java:482)
at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:254)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:632)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:480)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
[qtp83954662-20] INFO org.cometd.websocket.server.WebSocketTransport$WebSocketScheduler$1 - WebSocket Error, Address: null
...
(the rest removed for brevity)
問題が何であるかを理解しており、CometD のドキュメントを確認しました。ドキュメントによると、バッファ サイズと最大メッセージ サイズは、初期化パラメータ ws.bufferSize と ws.maxMessageSize を使用して変更できます。これらのパラメーターを web.xml ファイルに設定し、Jetty を再起動しましたが、パラメーターの設定は効果がないようです。バッファサイズが変更されていないため、まったく同じ例外が発生します。
web.xml ファイルの設定を以下に示します。
<servlet>
<servlet-name>cometd</servlet-name>
<servlet-class>org.cometd.server.CometDServlet</servlet-class>
<init-param>
<param-name>ws.bufferSize</param-name>
<param-value>400000</param-value>
</init-param>
<init-param>
<param-name>ws.maxMessageSize</param-name>
<param-value>400000</param-value>
</init-param>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>cometd</servlet-name>
<url-pattern>/cometd/*</url-pattern>
</servlet-mapping>
何か不足していますか?CometD サーバーで最大メッセージ サイズを設定し、実際にそのメッセージ サイズをサーバーに使用させるにはどうすればよいですか?