Java堆空间错误。 我想从网页上获得一个大的String结果,请查看下面的示例。 但
String response = resource.get(String.class);
将始终返回" java.lang.OutOfMemoryError:Java堆空间"错误。问题是网页太大了。是否有流媒体解决方案或其他解决方案,我可以使用而不是"字符串响应"?
感谢。
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
public class helloWorldClient {
public helloWorldClient() {
super();
}
public static void main(String[] args) {
Client c = Client.create();
WebResource resource = c.resource("http://localhost:7101/RESTfulService-Project1-context-root/jersey/helloWorld");
String response = resource.get(String.class);
}
}
答案 0 :(得分:0)
我在此页https://jersey.java.net/documentation/1.18/client-api.html
中看到了以下示例你可以试试这个:
InputStream in = resource.get(InputStream.class);
// Read from the stream
in.close();
答案 1 :(得分:0)
当您尝试将更多数据添加到内存中的堆空间区域时,会触发您遇到的“java.lang.OutOfMemoryError:Java堆空间”错误,但此数据的大小大于JVM可容纳的数据大小Java堆空间。
堆大小是JVM初始化时设置的阈值。如果您未自行设置,则使用特定于平台的默认值。这是一个合理的安全网,可以防止例如泄漏过程,否则会使整个机器瘫痪。
解决此问题的最简单方法是增加(或添加,如果缺少)以下参数设置java进程的最大堆大小,类似于允许1GB堆的以下示例:
java -Xmx1024m com.mycompany.MyClass