2017-10-09 3 views
0

URL에서 데이터를 가져 오기 위해 SOAP 서비스에 액세스하려고합니다. SOAP 서비스를 성공적으로 구성했습니다. 응답을 가져 오는 동안 나는 SOAP 서비스파일에 SOAP XML 응답 쓰기

soapResponse = soapConnection.call(SoapMsg, endPoint); 
soapResponse.writeTo(fileName); 

에서 응답을 얻기 위해 다음과 같은 방법을 실행하고하지만 난에서 OutOfMemory 예외를 얻을

java.lang.OutOfMemoryError: Java heap space 
    at java.util.Arrays.copyOf(Arrays.java:3236) ~[na:1.8.0_131] 
    at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) ~[na:1.8.0_131] 
    at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) ~[na:1.8.0_131] 
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) ~[na:1.8.0_131] 
    at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.readFully(HttpSOAPConnection.java:553) ~[na:1.8.0_131] 
    at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:318) ~[na:1.8.0_131] 
    at com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:145) ~[na:1.8.0_131] 

그러므로 나는 작은으로 응답을 파괴함으로써 파일에 기록 할 전체 응답이 검색되기 전에 청크가 검색됩니다. 이 방법으로 구성하는 방법에 대한 아이디어가 있습니까?

미리 감사드립니다.

답변

1

당신은 힙 메모리를 Increase heap size in Java

을 높이거나 응답을 스트리밍 시도해야 할 수도 있습니다.

connection.call (SoapMsg, endPoint) .writeTo (새 FileOutputStream (새 파일 (fileName))));

평상시와 달리 API를 사용하기 때문에이 기능이 잘 작동하는지 잘 모르겠습니다.

아마도 SoapMsg를 업데이트하여 반환되는 데이터 양을 줄이려고 시도 할 수 있습니다. 어쩌면 페이지 매김이 선택 사항 일 수 있습니다.