Framework/Spring
-
개인프로젝트 진행 중 테스트 서버에 프로젝트 배포 후 multipart 타입으로 되어 있는 페이지가 정상 작동하지 않는 현상이 발생했다.(저장시 에러) org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: 어떤 multi-part 설정도 제공되지 않았기 때문에, part들을 처리할 수 없습니다. at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartH..
[ERROR]Multipart 사용시 참고(404 에러) 2020. 12. 9. -
Spring + MyBatis 환경에서 개발하다보면 xml 파일을 수정할 때마다 서버를 재실행해주어야하는 불편함을 느끼셨을 겁니다. 아마도 가장 큰 불편함은 특정 페이지를 개발하다가 서버를 재실행하면 세션이 끊겨 다시 그 페이지로 가는 과정(+또는 행동)을 거쳐야하는 게 아닐까 싶습니다. 본 포스팅에서는 xml 파일 수정시 서버의 재실행없이 반영되게 하는 방법을 정리해보았습니다. ※ 테스트 환경 jdk 1.8 Eclipse 2019-06 Spring Framework 4.3 MyBatis 3.4.6 MariaDB 설정을 하기 앞서 Class 파일이 필요하다. 아래 소스를 원하는 패키지 경로에 추가한다. RefreshableSqlSessionFactoryBean.java package com.planm.u..
[Spring Framework]MyBatis 서버 재실행없이 XML 적용하기(RefreshableSqlSessionFactoryBean) 2020. 12. 2. -
운영 서버에 스케쥴러가 병렬로 작업되는 현상이 발생했다. 로컬에서 정상적으로 돌던 것이 왜 그러는지 의아했다. 다시 삽질이 시작됐다.... 구글링을 해본 결과 비슷한 증상을 겪은 이들이 더러 있었다. 검색 결과, 원인은 2가지로 유추할 수 있었다. 1. Tomcat 설정 2. Spring 설정 결과적으로 운영 서버에 돌고 있는 Tomcat - server.xml의 Host 설정을 변경해주어 해결되었다. 원인은 하나의 Host에서 appBase와 docBase가 같은 경로를 바라보고 있었던 것이 문제였다. Tomcat에서 동일한 Web Application Context가 두 개가 작동하던 것. [변경전] [변경후] 참고로 Spring 설정의 경우 @Component 어노테이션이 등록이 되어 있는 상태에서..
[ERROR]@Scheduled 중복 현상 2020. 8. 13. -
지금까지 경험한 바로 클라이언트단에서 파일 업로드를 하기 위해서 사용한 방법은 두가지가 있었습니다. Form-Submit을 이용한 방법과 Javascript-Ajax를 이용한 방법입니다. 오늘 포스팅할 내용은 자바스크립트를 이용한 파일 업로드입니다. Ajax와 FormData를 이용해 비동기 방식으로 서버측에 파일을 보내보도록 하겠습니다. FormData FormData는 자바스크립트에서 제공해주는 객체로 key와 value로 데이터를 append/parsing 할 수 있다. 파일을 담는 과정은 아래에서 보도록 하자. 참고로 FormData를 사용할 때, IE는 버전 10 이상에서만 가능하다고 한다. 스프링은 설정이 반이라고 생각하는데 여기서도 사실 설정이 반이다. 1) 먼저, 파일 업로드를 위한 dep..
[Spring Framework]Ajax + FormData를 이용한 파일 전송 2020. 4. 7. -
개인 프로젝트 진행 중 404 에러에 막혀 3일간을 삽질이 시작되었다.. 호출 url이 정확한지, 메소드 타입은 이상이 없는지 패키지 스캔 경로가 정확한지 Tomcat - server.xml의 path 경로는 어떻게 되어있는지 확인해봤지만 이상이 없었고 도저히 찾지 못해서 오키에 질문을 남겼다. 코드는 아래와 같이 저장 이벤트가 발생하면 ajax를 실행하고 컨트롤러에서 이벤트를 처리하는 구조이다. addEvent.jsp // 새로운 일정 저장 $.ajax({ type: "POST", url: "/schedule/addSchedule.do", cache: false, dataType: "json", data: JSON.stringify(eventData), contentType: "application/j..
[ERROR]Ajax 404 에러 2020. 3. 9. -
프로젝트 개발 중 발견한 에러. 보통 이 에러는 경로문제이거나 web.xml 설정 문제이다. 만약 경로가 잘 지정되어있다면 web.xml의 DispatcherServlet 부분을 의심해봐야 한다. servlet url-pattern이 "/" 또는 "/.*" 으로 되어있는 경우, css나 js까지도 DispatcherServlet을 타기 때문에 에러가 발생하게 된다. web.xml appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 appServlet / url-pattern을 dispatcherservlet을 태울 url(..
[ERROR]net::ERR_ABORTED 404 2020. 3. 5. -
Ajax를 이용해 json 데이터를 파싱할 때 간혹 한글이 깨지는 현상을 겪곤했습니다. 그 때마다 구글링해서 해결했었는데 이번 기회에 정리를 해놓으려고 합니다. 문제가 발생한 구간은 Ajax로 서버 호출, 데이터를 json 타입으로 받은 후 출력하는 부분. (아래와 같이 한글이 물음표(?)가 되어 출력되었다) jsp 상단에는 캐릭터셋과 인코딩 타입을 UTF-8로 맞춰놓은 상태였고, ajax의 contentType 속성에도 캐릭터셋을 UTF-8로 맞춰놓았다. jsp var getCompany = function() { var eventData = { cduser : "0001" }; $.ajax({ type: "POST", url: "/board/getCompany.ajax", cache: false, d..
[ERROR]Ajax 사용 및 json 데이터 한글 깨짐 현상 2019. 12. 19. -
이번 포스팅에서는 데이터 베이스와 연결하여 로그인을 할 수 있도록 수정하고, Mybatis와 연동한 데이터 조회하기까지 다뤄보려고 합니다. 데이터 베이스에 접속하기 위해서 DBCP를 사용할 것이고, 사용한 데이터 베이스는 오라클임을 참고해주세요. 여러 시도 결과, JDK 버전, DBCP 버전, OJDBC 버전 등등 버전의 호환성을 맞춰주는 것이 중요했습니다. 따라서 이 포스팅은 JDK 1.7 버전 기준이기 때문에 환경이 다르다면 각 개발 환경에 맞는 버전을 준비해주셔야 합니다. 1. DB 접속(JUnit 단위테스트) 1-1. dependency 추가. 먼저 DB에 접속이 되는지 확인하기 위해 Junit으로 테스트를 해본다. (Junit이란, 자바에서 독립된 단위테스트를 지원해주는 프레임워크이다) pom...
[Spring Framework]Spring Security 적용하기 - 4) DB 연동, MyBatis 연결 2019. 10. 28.