Jetty 9에서 실행중인 CometD 서버에 큰 메시지 (> 130k)를 보내려고합니다. 서버가이 큰 메시지를 받으면 다음 메시지를 생성합니다 예외 :들어오는 CometD 텍스트 메시지의 최대 크기를 변경하는 방법
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를 다시 시작했지만 매개 변수 설정이 효과가없는 것으로 보입니다. 버퍼 크기가 변하지 않기 때문에 여전히 똑같은 예외가 발생합니다. 내가 모르는 뭔가가
<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>
암 : web.xml 파일에 대한
설정은 아래에 제공됩니다? 어떻게하면 CometD 서버에서 최대 메시지 크기를 설정하고 서버가 실제로 그 메시지 크기를 사용할 수 있습니까?
사실, 오타가 없습니다 (질문과 함께 제공되는 web.xml 파일 참조). 매개 변수가 재설정되는 원인이 있으면 시작 코드 어딘가에 있어야합니다. 어디에서 그런 것을 찾을 수 있을까요? web.xml 파일이 올바른 경우 재설정을 수행 한 원인은 무엇입니까? –
Spring을 사용하여'BayeuxServer' 인스턴스 또는 다른 메커니즘을 생성하고 있습니까? 그러면'web.xml '에 정의 된 설정이 효과가없는 이유가 설명됩니다. – sbordet