분류 전체보기
spring - Failed to load ApplicationContext 에러해결
- 테스트 코드 실행 시에 이런 오류를 본 적이 있을 것이다. 로그를 읽어보면 No qualifying bean of type 'org.springframework.security.crypto.password.PasswordEncoder' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 사용 가능한 'org.springframework.security.crypto.password.PasswordEncoder' 유형의 자격 있는 빈이 없습니다. autowire 후보로 자격이 있는 빈이 하나 이상 있어야 합니다. 라는 뜻이므로 빈을 추가해준다. 테스트 성공!
spring - 테스트코드 UNREAD 발생! 발생!
CRUD를 구현하는 도중 댓글 목록을 가져오는 테스트코드를 실행했는데 다른 컬럼값은 잘가져오지만 content값만 unread가 나왔다. 확인 순서 1. DB 테이블 생성시에 지정해준 변수명이 spring domainVO에서 지정해준 변수명과 같은지 확인 (대소문자는 구분하지않음. "_" 과 같은 스네이크 표기법은 인식하므로 확인!) 2. 1번과 같은 확인을 했는데도 이상이 없는 경우가 바로 나의 경우였는데 이유를 찾아보니 spring 상에서 DB데이터타입 중 CLOB타입과 관련된 오류가 있었다는 것! - 해결방법 메서드 쿼리를 작성한 ReplyMapperTests.xml에서 resultMap을 통해 컬럼명과 변수를 맵핑하는 정보를 추가. 이때, resultMap의 type에 기존에 지정했던 result..
비동기 크롤링 Feat.Selenium(셀레니움)
jsoup과 같은 크롤링도 있지만 이번엔 Selenium을 통한 비동기 크롤링을 해보겠다. 무슨 차이가 있는가? > 자동 소프트웨어에 의해서 크롤링 하는 것을 방지하기 위해 태그나 클래스 명으로 접근하지 못하게 클릭을 통해서만 접근할 수 있게 해둔 웹사이트가 종종 있다. 실습을 해볼 사이트는 요기요 를 대상으로 했다. 시작에 앞서 selenium에 필요한 파일 다운로드 https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java/3.141.59 https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api/3.141.59 https://mvnrepository.com/a..
8080 포트 개방
AWS에서 8080 포트 개방을 해보겠다. 로그인 후 EC2 > 인바운드 규칙 편집 클릭 규칙 추가 > 8080 포트 범위선택 모든 곳 사용가능한 IPv4 완료
Spring - DB 게시글 데이터 불러보기
먼저 db와의 연결테스트를 해야한다. db에 테이블을 생성해주고, src/main/java에 com.dullinsub.domain패키지 아래 - BoardVO 클래스 생성 package com.dullinsub.domain; import java.util.Date; import org.apache.ibatis.type.Alias; import lombok.Data; @Data @Alias("board") // .xml resultType 이름 변경가능 public class BoardVO { private Long bno; private String title; private String content; private String writer; private Date regDate; private Dat..
프링프링 스프링 상큼한 오류 - 실행 시에 자동종료되는 오류가 뜬다!
정말 빈번한 오류가 발생하는 요 프링프링 스프링자식 이번엔 생전 보지못한 오류로 날 찾아왔다. 실행을 하면 자동으로 종료가 되버리고 두 가지의 에러 메세지와 함께 확인을 누르면 sts.ini 파일과 비슷하게 생긴 내용이 뜬다. 해결방법 1. sts-bundle 안에 STS.ini라는 메모장파일을 연다. a. javaw.exe 파일이 메모장에 적혀진 주소와 동일한 위치에 있는지부터 확인 -vm C:\Program Files\Java\jdk1.8.0_202\bin\javaw.exe b. 메모리 크기를 최대로 낮추어 저장하고 다시 실행해본다. xms > 128m 으로, xmx > 256m 으로 변경. c. 롬복파일 설치구문에 공백이나 문자가 잘못들어가있는게 없는지 확인한다. -javaagent:C:\Users..
프링프링 이놈의 오류 해결방법
이 무시무시한 놈을 마주쳤다면 우선 첫번째로 프로젝트를 새로 생성해서 실행해보는 방법이 있다. 이 방법으로도 해결이 되지 않았다면 다음 과정을 따라해보자. 1. JRE 라이브러리 사용 버전이 1.5인데 Alt+Enter 를 통해 2. 1.8버전으로 변경해보자
쓰레드 똑바로 일하고 있나!!
package chap13; public class ThreadEx1 { public static void main(String[] args) { ThreadEx1_1 ex1_1 = new ThreadEx1_1(); ThreadEx1_2 ex1_2 = new ThreadEx1_2(); //ex1_1.run(); // run으로 실행하면 한가지 작업이 모두 끝난 후에 다음 작업을 한다. ex1_1.start(); new Thread(ex1_2).start(); // 새 쓰레드가 시작할 때 러너블객체를 담아서 실행 for (int i = 0; i < 555; i++) { System.out.print("2"); } String str = "22222222222222222222222222222222222222..
쓰레드. 메인메서드가 끝이면 작업 종료?! NO!
package chap13; public class ThreadEx1 { public static void main(String[] args) { ThreadEx1_1 ex1_1 = new ThreadEx1_1(); ThreadEx1_2 ex1_2 = new ThreadEx1_2(); ex1_1.start(); new Thread(ex1_2).start(); // 새 쓰레드가 시작할 때 러너블객체를 담아서 실행 for (int i = 0; i < 1000; i++) { System.out.print("2"); } System.out.println("end of main"); // 메인메서드의 끝을 확인. main메서드가 끝이지만 다른 쓰레다가 // 아직작업을 마치지 않은 상태라면 프로그램이 종료가 아니라..
쓰레드(Thread) - start()와 run()
start() 와 run()의 차이 start() run() 새로운 쓰레드가 작업을 실행하는데 필요한 호출스택을 생성한 다음에 run()을 호출해서, 생성된 호출스택에 run()이 첫 번째로 올라가게 한다. main 메서드에서 run()을 호출하는 것은 생성된 쓰레드를 실행시키는 것이 아니라 단순히 클래스에 선언된 메서드를 호출하는 것일 뿐. main메서드에서 run()을 호출했을 때의 호출스택 새로운 쓰레드를 생성하고 start()를 호출한 후 호출스택의 변화 run()으로 실행 package chap13; public class ThreadEx1 { public static void main(String[] args) { ThreadEx1_1 ex1_1 = new ThreadEx1_1(); Threa..