스프링 에러 - url로 자료 전송시 발생 (HTTP Status 500 - The server encountered an unexpected condition that prevented it from fulfilling the request.))

Back-End/Spring 2019. 8. 21. 16:17

HTTP Status 500 – Internal Server Error


Type Exception Report

Message Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException:

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: 
### Error updating database.  Cause: java.sql.SQLException: ORA-01407: cannot update ("SPRING"."MEMBER_REPLY"."R_CONTENT") to NULL

### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: update member_reply set r_content = ? where rno = ?
### Cause: java.sql.SQLException: ORA-01407: cannot update ("SPRING"."MEMBER_REPLY"."R_CONTENT") to NULL

; uncategorized SQLException; SQL state [72000]; error code [1407]; ORA-01407: cannot update ("SPRING"."MEMBER_REPLY"."R_CONTENT") to NULL
; nested exception is java.sql.SQLException: ORA-01407: cannot update ("SPRING"."MEMBER_REPLY"."R_CONTENT") to NULL

	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1013)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

스프링에서 url로 자료를 전송할 시에 크롬이나 파이어폭스 같은 경우에는 한글로 된자료를 전송할때 자동으로 문자셋이 변환되지만 


인터넷 익스플로러에서는 자동으로 변환되지 않기 때문에 encodeURI로 값을 감싸주어야 한다.




하지만 이렇게 했을 경우에 똑같은 코드를 크롬브라우저에서 실행했을 시에는 encodeURI를 인식하지 못해서 에러가 발생하게 되므로


인터넷 익스플로러 말고 크롬에서 실행할 때에는 encodeURI를 제거한 후에 실행해야 한다.


1
2
document.form1.action="reply_update.do?rno="+rno+"&r_content="+encodeURI(r_content)+"&user_id="+user_id+"&member_bno="+member_bno+"&curPage="+curPage+"&search_option="+search_option+"&keyword="+keyword;
        document.form1.submit();
cs




변경후


1
2
document.form1.action="reply_update.do?rno="+rno+"&r_content="+r_content+"&user_id="+user_id+"&member_bno="+member_bno+"&curPage="+curPage+"&search_option="+search_option+"&keyword="+keyword;
        document.form1.submit();
cs


: