2015-05-12 47 views
0

我開始使用Thrift框架,基本示例成功,僅當我嘗試使應用程序發生更多方法時,出現錯誤java.lang.OutOfMemoryError。在拋出的異常下方。在Java中的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) 

我開始在客戶端TTransport如下:

TTransport transport = new TSocket (server, port); 
Protocol protocol = new TBinaryProtocol (transport); 
+1

你嘗試以更大的內存分配運行JVM? – Kon

+0

java -Xms = 512m -Xmx = 512m。使用適合您需要的值。 – Dagriel

+0

我指定了Xmx和Xms JVM。查看代碼Thrift錯誤發生在TBinaryProtocol類的readStringBody方法中,它將初始化一個字節vector.I不知道爲什麼,但是在啓動時傳遞的大小太大了。 –

回答

0

我注意到,當你的服務器使用TBinaryProtocol發生OutOfMemoryError但您嘗試訪問它以另一種方式,例如使用瀏覽器(會說HTTP)。也許這也是你的問題?

在您要訪問使用JavaScript客戶端的Java服務器的情況下看看這個例子:https://github.com/LukeOwncloud/ThriftJavaJavascriptDemo

相關問題