Framework
-
운영 서버에서 스케줄러가 병렬로 실행되는 문제가 발생했습니다.로컬에서는 정상적으로 동작했기 때문에 원인이 의아했지만, 검색해 본 결과 유사한 사례들이 있었습니다.조사한 결과, 원인은 두 가지로 추정할 수 있었습니다.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. -
1. 스프링 시큐리티 설치 지난 포스팅, "[Security]스프링 시큐리티 적용하기 - 1) 스프링 프레임워크 설정"을 하게 되면서 maven을 이용해 필요한 라이브러리를 추가할 수 있게 되었다. 1-1. 스프링 시큐리티를 사용하기 위해서 dependency를 추가한다. (dependency에 대한 이해를 하기 위해서는 maven을 공부해야 하는데 여기서는 라이브러리의 관리를 도와주는 정도로 이해하고 넘어가자) 스프링 시큐리티 버전은 3.1 버전으로 스프링 3.9 버전과 문제 없이 잘 돌아갔으나 다른 버전에 경우 어떤 충돌 현상이 있을지는 장담하지 못할 것 같다. pom.xml org.springframework.security spring-security-core 3.1.0.RELEASE org.sp..
[Spring Framework]Spring Security 적용하기 - 2) 스프링 시큐리티 적용 2019. 10. 23. -
이번에 스프링 시큐리티 환경에서 개발을 하게 되면서 혼자 스터디하는 시간을 가져봤습니다. 환경 구축은 언제나 쉽지 않다는 것을 다시금 느낄 수 있는 시간이었고 여러 번의 실패 과정을 거치면서 설정 과정을 포스팅으로 남겨야겠다는 생각을 하게 되었습니다. 필요한 분들에게 도움이 되었으면 좋겠습니다 :) 작업환경은 다음과 같습니다. OS Windows 10 64bit Tool Eclipse 2019-06 (4.12.0) WAS Tomcat 7 jdk 1.7 *이클립스와 톰캣 및 JDK는 설치되었다는 가정하에 설정을 진행하도록 하겠습니다. + 스프링 부트를 이용한 예제도 있으니 참고해주세요. 1. STS 설치 1-1. [Help]-[Eclipse Marketpalce]를 클릭한다. 1-2. STS를 직접 설치해..
[Spring Framework]Spring Security 적용하기 - 1) 스프링 프레임워크 설정 2019. 10. 23.