2012-06-01 4 views
0

먼저 질문을하고 배경을 알려주십시오. SOAP Envelope Size가 머리글을 포함하여 계산되었거나 태그 외부의 콘텐츠 만 계산되는 경우 누구에게 알 수 있습니까?SOAP 봉투 크기

Content-Length에는 헤더 정보가 포함되어 있지만 Content-Length = Envelope Size라고 가정 할 수는 없습니다. SOAP 스펙은 엔벨로프 크기를 처리하지 못하는 것으로 보입니다. SOAP 구현자는 "구현 자에게 달려있다"라고 걱정하기 시작했습니다.

모든 답변이나 단서가 도움이 될 것입니다.

+0

'Content-Length'는 응답의 본문 크기이다. HTTP를 통해 SOAP을 수행하는 경우 SOAP XML이 본문입니다. SOAP 봉투 크기에 필요한 것은 무엇입니까? – JohnDoDo

+0

CWMP를 다루고 있는데이 경우에는 최대 SOAP Envelope 크기를 초과해야하는 9004 오류를 테스트하고 있습니다. – Joshua

+0

그런 다음 가능한 한 많은 데이터로 SOAP 메시지를 압축하여 보내십시오. – JohnDoDo

답변

0

당신이 이런 식으로 할 수있는 최대 크기를 초과하는 경우에는 확인하는 경우 :

 if (maxMessageSize > 0) { 
      FixedByteArrayOutputStream fbaos = new FixedByteArrayOutputStream(maxMessageSize); 
      try { 

      } catch (XMLStreamException e) { 
       handleException("Error in checking the message size", e, synCtx); 
      } catch (SynapseException syne) { 
       synLog.traceOrDebug("Message size exceeds the upper bound for caching, request will not be cached"); 
       return; 
      } finally { 
       try { 
        fbaos.close(); 
       } catch (IOException e) { 
        handleException("Error occurred while closing the FixedByteArrayOutputStream ", e, synCtx); 
       } 
      } 
     } 

이 생각을 할 수있는 가장 효율적인 방법이 아닌가. 그래서 나는 그것을 물어 봤다 here