728x90
반응형
Spring 프로젝트에서 JSON 데이터셋 전달하는데 데이터의 양이 많으면 호출되지 않는 오류가 발생했다.
해당 오류에 대해 해결방법에 대해 포스팅해보려고 한다.
일단 다른 이유가 있을 수도 있지만 필자는 maxPostSize와 maxParameterCount의 설정 문제였다.
Apache Tomcat 서버의 설정 속성으로, 웹 애플리케이션이나 서블릿에서 처리하는 HTTP 요청의 크기 및 매개변수 수를 제한하는 데 사용된다. 설정만 해주면 해결되는 문제였기 때문에 방법 또한 쉽다.
관련 오류
1. 오류1 : maxParameterCount 속성과 관련된 내용을 설명
maxParameterCount The maximum number of parameter and value pairs (GET plus POST) which will be automatically parsed by the container. Parameter and value pairs beyond this limit will be ignored. A value of less than 0 means no limit. If not specified, a default of 10000 is used. Note that FailedRequestFilter filter can be used to reject requests that hit the limit.
2. 오류2 : maxPostSize 속성을 설정할 때 발생할 수 있는 오류에 대한 설명
maxPostSize The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes). Note that the FailedRequestFilter can be used to reject requests that exceed this limit.
1. maxPostSize
maxPostSize는 HTTP POST 요청의 최대 크기를 지정한다.
값은 바이트 단위로 지정되며, -1로 설정하면 제한이 없다는 것을 의미한다.
큰 파일 업로드나 데이터 전송과 같이 큰 POST 요청을 다룰 때 이 속성을 설정할 수 있으며, 만약 설정된 값보다 큰 요청이 오면 서버는 해당 요청을 거부할 수 있다.
2. maxParameterCount: 요청에 포함된 매개변수의 최대 수
이 속성을 사용하여 너무 많은 매개변수를 갖는 요청을 방지할 수 있다.
값을 -1로 설정 제한이 없다는 것이고, 0 또는 양수로 설정하면 해당 수를 초과하는 매개변수의 요청은 거부
사용법은 일반적으로 server.xml 파일에서 <Connector> 엘리먼트를 찾을 수 있다.
아래 엘리먼트는 Tomcat 서버의 커넥터를 정의하며, HTTP 연결에 대한 설정을 관리합니다. 여기에 maxPostSize와 maxParameterCount 속성을 추가하는 역할을 한다.
적용방법
<Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="-1" maxParameterCount="-1"/>
1. [Ctrl + Shift + R ] -> server.xml 파일에 들어가서 <Connector ../> 엘리먼트를 찾는다.
2. maxPostSize="-1" maxParameterCount="-1" 를 추가해주기만 하면 된다.
내부망 환경이라... 오류내용/과정/결과를 캡처하지 못한 점... 너무 아쉽다..
728x90
반응형