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(StandardMultipar..
[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. -
운영 서버에서 스케줄러가 병렬로 실행되는 문제가 발생했습니다.로컬에서는 정상적으로 동작했기 때문에 원인이 의아했지만, 검색해 본 결과 유사한 사례들이 있었습니다.조사한 결과, 원인은 두 가지로 추정할 수 있었습니다.Tomcat 설정 문제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), ..
[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을 dispatc..
[Error]net::ERR_ABORTED 404 2020. 3. 5. -
이번 포스팅에서는 데이터 베이스와 연결하여 로그인을 할 수 있도록 수정하고, 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. -
이번 장에서는 스프링 시큐리티의 로그인 페이지를 커스터마이징을 해보려 합니다. 1. 프로젝트 추가 설정 먼저 톰캣의 server.xml과 프로젝트의 servlet-context.xml 설정을 바꿔줘야 할 것이 있다. 첫 장에서 짚고 넘어갔어야 하는 부분인데 지나쳐버렸다... 경로는 다음과 같다. 1-1. server.xml 수정 직접 수정하지 않았다면 path의 경로가 최초 패키지 생성시 설정한 board(사용자가 설정한 패키지)로 되어있을 것이다. 이 경로를 “/”로 바꿔준다. 여기서 board를 빼주는 것은 “/board” 는 URL 상의 주소를 의미하기 때문이다. docBase로 있는 pj_security가 Root 경로가 되며, localhost:8099/board 로 접근을 하게 된다. 만약 p..
[Spring Framework]Spring Security 적용하기 - 3) 커스터마이징 2019. 10. 23.