mybatis 에서 Boolean인 속성 'myBool' 이 있을때 #{myBool} 은 0 또는 1로 표시됨 ${myBool} 은 false 또는 true 로 표시됨 postgres 컬럼 데이터타입 bit 인 경우 값은 b'0' 이나 b'1' 이라고 입력해야 함. 이걸 insert, update 쿼리에 그대로 b'#{myBool}' 로 표현하면 오류가 발생함. * 해결 컬럼 데이터타입 bool 로 선언 mybatis 에서 가져올때는 # 대신 ${myBool} 을 사용해서 가져옴
https://stackoverflow.com/questions/5649329/utf-8-encoding-problem-in-spring-mvc * 방법 1 - 실패 response.setCharacterEncoding("utf-8"); response.setContentType("text/plain;charset=UTF-8"); * 방법 2 - 성공 @RequestMapping(value = ".....", produces="text/plain;charset=UTF-8") * 방법 3 - 안해봄 ViewResolver 에 contentType 속성 설정 * 방법 4 - 안해봄 StringHttpMessageConverter 설정 https://lahuman.github.io/korean-utf-8-St..
#Interceptor : 컨트롤레에 들어오는 Request, 응답하는 Response 를 가로챔. Filter는 서블릿 실행전에 URL 에서 걸러내지만, Interceptor 는 서블릿 실행 후에 걸러냄 1. egov-com-interceptor.xml 에 인터셉터가 정의됨. 1) IpObtainInterceptor 는 preHandle() 에서 현재 LoginVO 에 IP 를 기록하는 역할을 함. 2) AuthenticInterceptor 는 인증된 사용자가 아닌 경우 로그인 페이지로 redirect 하는 역할임. 로그인 페이지를 바꾸거나, 로그인 페이지의 STATUS CODE 가 200 인게 마음에 안들면 이곳을 고쳐야 함
1. egov-com-servlet.xml 에 ExceptionResolver 에 대한 선언이 있음. - 기본 오류 페이지 및 예외별 오류 페이지가 정의되어 있음. 2. context-aspect.xml 에 예외발생시 호출되는 aop 가 호출되도록 설정되어 있음. ServiceImpl 에 대해서 호출되며, ExceptionTransfer#transfer() 를 호출하게 됨. - 이 ~Transfer 는 2개의 'ExceptionManager' 와 연결될 1) defaultExceptionHandleManager (이 ~Manager 는 EgovComExcepHndlr 와 연결됨) 2) otherExceptionHandleManager (이 ~Manager 는 EgovComOthersExcepHndlr 와..
* 원인 Request 시 csrf 토큰 안보낸 경우 * 해결 1 - 일반 form 전송 다음 파라메터 추가 * 해결 2 - ajax 전송시 헤더에 추가 (파라메터와 보내는 이름이 좀 다르지..) https://www.popit.kr/spring-security-ajax-%ED%98%B8%EC%B6%9C-%EC%8B%9C-csrf-%EA%B4%80%EB%A0%A8-403-forbidden-%EC%97%90%EB%9F%AC/ $.ajax({ url : 'ajax/saveLog', ... beforeSend : function(xhr){ xhr.setRequestHeader("${_csrf.headerName}","${_csrf.token}"); }, ... # 참고 : jqueyr ajax 헤더 추가 ht..
jsp (line: 43, column: 2) According to TLD or attribute directive in tag file, attribute var does not accept any expressions var 에다가 ${} 넣는거 아냐 items 는 ${} 맞아
GIT PUSH 중 충돌 (rejected non-fast-forward) * 상황 1 : commit 충돌로 인한 오류 1. 다른 User 가 (remote)origin/master 에 수정 commit 2. 이 commit 을 pull 하기 전에 내가 같은 브랜치에 수정 3. pull 하지 않은 상태 에서 commit 하면 오류 발생함. (rejected non-fast-forward) https://devx.tistory.com/entry/git-push-%EC%8B%9C-%EC%98%A4%EB%A5%98%EB%A9%94%EC%84%B8%EC%A7%80-%EB%B0%9C%EC%83%9D%EC%9B%90%EC%9D%B8 * 해결 1 - 그냥 강제로 미는 방법 git push --force - 이클립스..
* 개요 Caused by: org.codehaus.plexus.archiver.ArchiverException: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) *환경 Eclipse Spring Maven * 해결 pom.xml 에 maven-war-plugin 추가 https://stackoverflow.com/questions/5351948/webxml-attribute-is-required-error-in-maven
* 개요 웹 프로젝트 서버에 올려서 구동하는데 다음 오류 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener * 환경 Eclipse Spring Maven * 원인 pom.xml 에 packaging jar 로 되어있음 * 해결 packaging war 로 변경
* 개요 ResponseEntity#getHeaders().setContentType(...) 를 호출했는데 UnsupportedOperationException 발생 * 원인 getHeaders() 로 HttpHeaders 가져올때는 Collections.unmodifiableList() 를 씌워서 반환함. 헤더 설정은 생성당시에만 하고, 그 뒤에는 보기만 하라는거. * 해결 헤더는 생성시에 설정함. MultiValueMap headers = new LinkedMultiValueMap(); headers.add("Content-Type", "application/json; charset=UTF-8"); ResponseEntity response = new ResponseEntity(/*바디*/, hea..
String 반환 대신 ResponseEntity 사용 header 에는 "Content-Type", "application/json; charset=UTF-8" 추가 되어 있어야 함 https://otep.tistory.com/38 * 기타 StringHttpMessageConverter 선언하는 방법 있었으나 알 수 없는 에서 SAXParserException 발생하여 시도해보지 못함. https://stackoverflow.com/questions/19218122/cvc-complex-type-2-4-c-the-matching-wildcard-is-strict-but-no-declaration-can
* 개요 mybatis 에 resultType 에 제대로 된 클래스명 썼음에도 불구하고 다음 오류 발생 ClassNotFoundException: Cannot find class: xxx.xxxx.xxx at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:120). * 문제 원인 - 일반적인 class 의 오타, 패키지명 오타, alias 선언 문제 등이 아니고 그냥 Project 꼬인 경우임 - resultType으로 할 클래스를 A 라고 하면, A 클래스를 만들었다가 지웠다가 다시 만들거나, 이름을 변경하거나 하면서 내부적으로 꼬이게 된듯. - 프로젝트 생성 초기에 클래스 이름 정한다고 이름 바꾸고 영어사전 찾..
* 개요 mdb.js 추가했는데 다음 오류 나며 미작동 mdb.min.js:1 Uncaught TypeError: Cannot read property 'addEventListener' of null at Object.t.init (mdb.min.js:1) at mdb.min.js:1 * 해결 body 로딩 완료 후 해당 js 가 작동해야 하는데 순서가 바뀌면서 없는 요소롤 불러와 생기는 오류 https://mdbootstrap.com/support/general/uncaught-typeerror-cannot-read-property-addeventlistener-of-null/ 불러오는 중입니다... head 에 쳐박혀 있는 mdb.js 호출 부분을 body 로 보내자 해결
* 환경 Spring boot 2.XX Eclipse 1. Application 클래스에 다음 어노테이션 추가 @PropertySource(value = { "classpath:/application-${spring.profiles.active}.properties" }) - 추가 했는데도 계속 다음 오류 나는 경우? java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist => DB Confg 나 Security Config 파일을 따로 두고 있었는데, 거기서도 @PropertySource 선언해놓은 상태였던 경우.. 2. 파일 준비 applicat..
* 개요 Maven Install 했는데 sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target .. 등 인증서 오류 * 원인 처음에는 인증서 관련된 해결을 시도하려고 했었으나 관련 없었음. 대상 프로젝트는 Maven 다중 모듈로 구성된 프로젝트였고 Root, 모듈1, 모듈2 ,... 로 구성되었고 모듈2는 모듈1에 대한 의존성을 갖고 있었음 모듈 2 사용 위해서 Root, 모듈 1 빌드 했어야 했는데 하지 않으면서 생긴 (전혀 관련 없어 보이는 ) 오류 * 관련 로그 전문 Failed to execute goal on project monitor..
* 개요 MySQL 사용하는 웹앱에서 DB 접속하지 못하고 다음 오류 발생 ... Client does not support authentication protocol requested by server; consider upgrading MySQL client Cause: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Client does not support authentication protocol requested by server; consider upgrading MySQL client) * 원인 MySQL 8은 로그인 정보를 암호화하여 보내도록 설정이 가능 암호화 없이 로그인 하려할때 발..