java.lang.IllegalStateException: Form too large xxx>200000 익셉션이 발생할때.

뭐 대부분의 경우 요 익셉션을 볼 건덕지가 없겠지만~

요 익셉션은 후로그램 상의 문제가 아니라 후로그램이 돌아가는 서버에서 발생하는 익셉션이다.


웹 개발에서 POST 로 서브밋 할때 최대한 보낼수 있도록 설정된 데이터 크기보다 더 큰 데이터를 서브밋 해서 발생하는 익셉션이다.

로컬에서 개발할때 Jetty 를 서버로 써서 개발하고 있기 때문에 Jetty 에서 요 익셉션을 해결하는 방법을 알아 보았다.


찾아보니까 뭐 이것저것 알아들을 수 없는 말을 써 놨던데

방법들 중에서 제일 간편한 방법은 /WEB-INF 폴더에 아래와 같은 jetty-web.xml 파일을 맹글어, 추가해 주면 간단히 해결할 수 있다.

Jetty 가 스타트 될때 web.xml 처럼, 아마 jetty-web.xml 파일을 자동으로 참조해서 설정을 하나보다.

※ maxFormContentSize 의 값으로 원하는 만큼 쭉 늘려주면 된다. 익셉션 내용에서도 알수 있겠지만 디폴트값은 200000 인것 같다.

※ Jetty 7 버전 이상부터 패키지가 org.eclipse.xxx 요걸로 바껴서 class 부분을 죠렇게 설정했고, 이전버전을 쓰고 있다면 class 에 org.mortbay.jetty.webapp.WebAppContext 요걸 설정해 줘야 한다.



<?xml version="1.0"?>
  <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
  "http://jetty.mortbay.org/configure.dtd">

<Configure id="WebAppContext" class="org.eclipse.jetty.webapp.WebAppContext">
	<Set name="maxFormContentSize" type="int">1000000</Set>
</Configure>