2017-12-05 3 views
0

데이터베이스에 요청 XML을 저장해야합니다. 헤더 변수를 사용하고있었습니다.크기 낙타 헤더 변수 및 속성의 한도

exchange.getIn().setHeader("inputRequestXml", body); 

일부 파일에서는 작동하고 일부 파일에서는 예외가 발생했습니다. 파일 크기 때문에 문제가 발생했습니다.

413 Request entity too large 

그래서 나는 아래
exchange.setProperty("inputRequestXml", body); 

지금 나는 예외를 받고 있지 않다처럼, 낙타 속성을 사용하여 구현을 변경했습니다. 그러나 실제 PROD 환경에서 더 큰 파일을 처리하게 될까봐 걱정됩니다. 그래서 내가 알고 싶은데, 헤더 변수 및 속성의 크기는 입니다 무엇입니까?

답변

2

Apache Camel에는 헤더 및 속성에 대한 제한이 없습니다. 다른 모든 오브젝트와 마찬가지로 Java 힙 크기에 의해 제한됩니다.

게시 한 오류가 HTTP 오류입니다. HTTP를 통해 보내고 원격 서버가이 오류를 반환했습니다. Apache Camel은 Message#headers을 HTTP 헤더로 변환하고 서버에서 구성된 크기 제한을 초과했습니다.

참조 : 속성은 HTTP를 통해 tranferred되지 않기 때문에 속성으로 전환 Maximum on http header values?

는했다. 끝점 옵션에 관심이있을 수 있습니다. copyHeaders=falseheaderFilterStrategy

4

Exchange 속성에는 제한이 없으며 키/값을 JVM의 메모리에 저장하는 HashMap뿐입니다.

메시지 헤더도 단지 HashMap이지만 헤더는 메시지 계약의 일부이며 사용하는 Camel 구성 요소 (전송)에 따라 HTTP 헤더, SOAP 헤더, JMS 헤더 등이 사용될 수 있습니다. 언제 이러한 전송으로 인한 헤더 제한이있을 수 있습니다.

더 자세한 내용을 볼 수 있으며, 중요한 카멜 개념을 설명하는 카멜 인 액션 2 판 무료 1 장을 읽는 것이 좋습니다.