2012-08-31 4 views
3

내가하지만 한 번에, 클라이언트 응용 프로그램에서 JSON 데이터를 수신하고 HTTP를 통한 컨텐츠 길이와 오류는 HTTP 콘텐츠 길이가 64K 이상, 나는 다음과 같은 오류가 나타날 때 :의 Netty : 64K

org.jboss.netty.handler.codec.frame.TooLongFrameException: HTTP content length exceeded 65536 bytes. 

I을 현재 다음 한 오히려 순진, 장소에 구현 읽을 수있는 HTTP 내용 :

String requestContent = null; 
HttpRequest request = (HttpRequest) e.getMessage(); 
ChannelBuffer content = request.getContent(); 
if (content.readable()) { 
    requestContent = content.toString(CharsetUtil.UTF_8); 
} 

64K 이상의 데이터를 수신 가능하게하는 방법이 있나요?

편집 : 스택 추적 :

Aug 31, 2012 2:35:20 PM org.jboss.netty.channel.SimpleChannelUpstreamHandler 
WARNING: EXCEPTION, please implement org.eurekaj.manager.server.router.RouterHandler.exceptionCaught() for proper handling. 
org.jboss.netty.handler.codec.frame.TooLongFrameException: HTTP content length exceeded 65536 bytes. 
at org.jboss.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:130) 
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) 
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.unfoldAndFireMessageReceived(ReplayingDecoder.java:593) 
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:584) 
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:509) 
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) 
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) 
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:94) 
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:372) 
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:246) 
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:722) 

이 다시에만 데이터의 첫 번째 64K는 HTTP 요청에서 읽도록 지시 내 응용 프로그램에서 다음과 같은 오류를 일으킬 :

Caused by: org.json.JSONException: Unterminated string at character 65537 
at org.json.JSONTokener.syntaxError(JSONTokener.java:410) 
at org.json.JSONTokener.nextString(JSONTokener.java:244) 
+0

전체 stacktrace 게시 할 수 주시겠습니까? –

+0

스택 추적으로 원래 게시물을 편집했습니다. –

답변

6

그런 다음 HttpChunkAggregator의 생성자에서 다른 최대 콘텐츠 길이를 지정하십시오. 그 트릭을해야합니다 ..

+0

늦게 답변을 드려 죄송합니다. 예. 그 트릭을 :) –

관련 문제