본문 바로가기
Language/Java

JAVA 파일다운로드 에러 (HTTP response 413 error / Tomcat 파일다운로드 에러)

by 나비와꽃기린 2019. 7. 31.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

PDF 파일다운로드 보기 서비스에러 사례.

== 톰캣 파일업로드 용량 Error ( 자바 파일다운로드 안될때!! )


1. 

pdf 파일 생성 서버에서 HTTP resonse code 413이 응답되는것을 보고

서버에서 response limit 증가 설정을 함

 -조치방법--> nginx서버에서 response limit 값을 100M설정.

 -에러이유--> 서버에서 PDF를 만들 때 데이터를 약 5000건 이상 XML로 만들어서

전달하는 데이터의 양이 많았던 것으로 예상됨. )


2. 413 에러는 사라졌으나 응답이 0Byte로 오면서 PDF가 다운로드 되지 않음.

   413 에러만 사라졌을 뿐 문제가 해결되지 않음


3. PDF를 만드는 서버로직에 catch로 exception 추적.

   그러나 exception을 떨어뜨리지 않음.

   해당 서비스에러는 특정건에서만 발생하고 다른 케이스인 경우는 잘 서비스되는

  상황이었고, 문제의 원인이 tomcat에 있지 않을까 추측

  (왜냐? 전달하는 parameter의 양이 많았기 때문. )


4. get말고 post시에도  최대파라미터 개수에 제한이 있다는 것을 찾아냄 

 참고 url : https://lee-mandu.tistory.com/280

 tomcat의 maxParamterCount , maxPostSize를 0보다 작은 값으로 설정하면 파라미터 길이가 무제한으로 보내진다고 함.


5. 그렇다면 설정을 변경해보자. 

톰캣은 기본적으로 설정을 변경하지 않으면 POST 타입으로

데이터를 전송할 때 POST BODY 사이즈가 2MB로 제한되어 있다고 함.

따라서 명시적으로 POST BODY SIZE를 지정해주면

파일업로드 용량관련 서비스에러를 해결할 수 있음.


* 설정파일 수정이기 때문에 톰캣이 기동중이라면 종료시키고 작업해야함.

1. $TOMCAT_HOME$/conf/server.xml 파일 열기

2. <Connector port="8080" ~ 부분에

    maxPostSize="-1" maxParamterCount="-1" > 설정.


이때, 톰캣 7.0.63 버전 이전에는 0으로 설정해야 했으나

그 이후 버전은 0보다 작은 값으로 설정해야 된다고 하니 참고참고참고!


tomcat 설정변경 후, 전달하는 데이터양이 많은 pdf의 서비스에러문제 해결.