HTTP 상태 500 – 내부 서버 오류
HTTP 상태 500 – 내부 서버 오류
타입 예외 보고
메시지 Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException:
설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.
예외
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 ### The error may exist in file [C:\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\yang4\WEB-INF\classes\mappers\boardMapper.xml] ### The error may involve boardMapper.insertBoard-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO TBL_BOARD (CATE_CD, TITLE, CONTENT, TAG, VIEW_CNT, REG_ID, REG_DT, EDIT_DT) VALUES ( ? , ? , ? , ? , 0 , ? , now() , now() ) ### Cause: java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 ; SQL []; (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1; nested exception is java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
근본 원인 (root cause)
org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 ### The error may exist in file [C:\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\yang4\WEB-INF\classes\mappers\boardMapper.xml] ### The error may involve boardMapper.insertBoard-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO TBL_BOARD (CATE_CD, TITLE, CONTENT, TAG, VIEW_CNT, REG_ID, REG_DT, EDIT_DT) VALUES ( ? , ? , ? , ? , 0 , ? , now() , now() ) ### Cause: java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 ; SQL []; (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1; nested exception is java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) com.sun.proxy.$Proxy12.insert(Unknown Source) org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271) kr.co.dao.BoardDAOImpl.insertBoard(BoardDAOImpl.java:32) kr.co.service.BoardServiceImpl.insertBoard(BoardServiceImpl.java:35) kr.co.contorller.BoardController.saveBoard(BoardController.java:89) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
근본 원인 (root cause)
java.sql.SQLSyntaxErrorException: (conn=495) Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:62) org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:153) org.mariadb.jdbc.MariaDbStatement.executeExceptionEpilogue(MariaDbStatement.java:273) org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:229) org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:149) org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) com.sun.proxy.$Proxy12.insert(Unknown Source) org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271) kr.co.dao.BoardDAOImpl.insertBoard(BoardDAOImpl.java:32) kr.co.service.BoardServiceImpl.insertBoard(BoardServiceImpl.java:35) kr.co.contorller.BoardController.saveBoard(BoardController.java:89) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
근본 원인 (root cause)
org.mariadb.jdbc.internal.util.exceptions.MariaDbSqlException: Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 org.mariadb.jdbc.internal.util.exceptions.MariaDbSqlException.of(MariaDbSqlException.java:34) org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:194) org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.exceptionWithQuery(AbstractQueryProtocol.java:177) org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:321) org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:220) org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:149) org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) com.sun.proxy.$Proxy12.insert(Unknown Source) org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271) kr.co.dao.BoardDAOImpl.insertBoard(BoardDAOImpl.java:32) kr.co.service.BoardServiceImpl.insertBoard(BoardServiceImpl.java:35) kr.co.contorller.BoardController.saveBoard(BoardController.java:89) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
근본 원인 (root cause)
java.sql.SQLException: Incorrect string value: '\xEB\xB2\x84\xEC\x96\xB5' for column `blog`.`tbl_board`.`title` at row 1 org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1674) org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1536) org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1499) org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:318) org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:220) org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:149) org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) com.sun.proxy.$Proxy12.insert(Unknown Source) org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271) kr.co.dao.BoardDAOImpl.insertBoard(BoardDAOImpl.java:32) kr.co.service.BoardServiceImpl.insertBoard(BoardServiceImpl.java:35) kr.co.contorller.BoardController.saveBoard(BoardController.java:89) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.base/java.lang.reflect.Method.invoke(Unknown Source) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:660) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
비고 근본 원인(root cause)의 풀 스택 트레이스를, 서버 로그들에서 확인할 수 있습니다.
Apache Tomcat/8.5.54
해결방법)
오류 내역을 보면 한글이라서 저장 실패 그런뜻인데. 스프링에서 할 수 있는 모든 인코딩 문제를 다 설정 했음에도 저장이 안되면 DB에서 테이블과 DB조합을 확인해라 utf8_unicode_ci조합이 아니면 모두다 바꿔주면 해결!