Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.OutOfMemoryError在java的Thrift中发生错误_Java_Thrift - Fatal编程技术网

java.lang.OutOfMemoryError在java的Thrift中发生错误

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

我开始使用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 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) 您真的试图传输太多的数据。