java.lang.OutOfMemoryError在java的Thrift中发生错误
我开始使用Thrift框架,基本的例子都是成功的,只有当我尝试使应用程序更多的方法出现错误java.lang.OutOfMemoryError时。下面是抛出的异常java.lang.OutOfMemoryError在java的Thrift中发生错误,java,thrift,Java,Thrift,我开始使用Thrift框架,基本的例子都是成功的,只有当我尝试使应用程序更多的方法出现错误java.lang.OutOfMemoryError时。下面是抛出的异常 Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space org.apache.thrift.TApplicationException: connecting failed: out of sequence response at
Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java
heap space org.apache.thrift.TApplicationException: connecting failed:
out of sequence response
at org.apache.thrift.protocol.TBinaryProtocol.readStringBody(TBinaryProtocol.java:379)
at org.apache.thrift.protocol.TBinaryProtocol.readString(TBinaryProtocol.java:374)
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
at br.com.gadje.servico.client.CollectorReceiver.run(CollectorReceiver.java:32)
at java.lang.Thread.run(Thread.java:745)
我正在开始客户端T传输,如下所示:
TTransport transport = new TSocket (server, port);
Protocol protocol = new TBinaryProtocol (transport);
我注意到当您的服务器正在使用
TBinaryProtocol
但您尝试以另一种方式访问它时,会出现outofmemory错误
,例如使用浏览器(讲HTTP)。也许这也是你的问题
如果您想使用Javascript客户端访问Java服务器,请查看以下示例:您是否尝试使用更大的内存分配来运行JVM?Java-Xms=512m-Xmx=512m。使用适合您需要的值。我正在指定Xmx和Xms JVM。查看readStringBody方法中TBinaryProtocol类在初始化字节向量时发生的代码节约错误。我不知道为什么,但启动时传递的大小太大。大小是多少?您是否通过调试器查看过?有两种典型情况会导致这种效果:(1)服务器显式或隐式使用
TFramedTransport
(某些服务器类型需要TFramedTransport
),但客户端不需要。(2) 您真的试图传输太多的数据。