전자정부프레임워크 spring 파일 업로드시 500 에러 원인 해결법
일단 전자정부 프레임워크의 업로드에 대한 설명은 접어두고
오류의 원인과 해결법에 대해서 설명하겠습니다.
<form action="readCSV.do" method="post" enctype="multipart/form-data" id="fileForm" >
<input type="file" name="file" id="file" onChange="uploadChange(this.value)" style="display: none;" />
</form>
저의 경우 위와 같이 form도 enctype 과 method 를 정석대로 입력하였고
서버 쪽에서도 정석대로 아래와 같이 받아주었습니다.
|
@RequestMapping(value="/readCSV.do", method=RequestMethod.POST)
public String readFile(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws IOException {
final Map<String, MultipartFile> files = ((MultipartHttpServletRequest)request).getFileMap();
System.out.println(files.size());
System.out.println(files.toString());
return "FiileList";
}
|
cs |
물론 spring 설정파일(context-common.xml) 에도 아래와 같이 정석대로 설정해 주었고
|
<bean id="multipartResolver" class="egovframework.com.neighbor.web.common.EgovMultipartResolver">
<property name="maxUploadSize" value="100000000" />
<property name="maxInMemorySize" value="100000000" />
</bean>
|
cs |
EgovMultipartResolver.java 의 경로 위치 뭐 이상이 아무 것도 없었습니다.
그런데 자꾸 실행하면 500에러를 띄우는 것입니다.
java.lang.NullPointerException 자꾸 나는데 원인이 뭔지도 모르겠고..
엄청 오래 고민했던거 같내요..
원인은 간단했습니다.
EgovMultipartResolver.java 의
String propExts = propertyService.getString("Globals.validateExts"); <- 이부분에서 에러가 난거였는데
spring 설정파일중 context-properties.xml 파일에 아래의 한줄을 추가해 주면 됩니다.
<entry key="Globals.validateExts" value="jsp,cgi,php,asp,aspx,exe,com,html,htm,cab,php3,pl,java,class,js,css"/>
[context-properties.xml]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties">
<map>
<entry key="pageUnit" value="10"/>
<entry key="pageSize" value="10"/>
<entry key="SUCCESS" value="200"/>
<entry key="FAIL" value="201"/>
<entrykey="Globals.validateExts"value="jsp,cgi,php,asp,aspx,exe,com,html,htm,cab,php3,pl,java,class,js,css"/>
</map>
</property>
</bean>
</beans>
|
cs |
댓글