목록Error solution (42)
코딩항해기
@Autowired를 통해 의존성 주입 시 발생하는 모호성 문제로 인해 예외가 발생했다.Autowired는 의존주입을 할 대상의 타입을 보고 자동으로 찾게 되는데 이 타입을 가진 객체가 여러 개 있어 어떤 의존주입을 해야할지 알 수 없어진 것이다. (주입대상 모호성) 이 때 해결하는 방법은 두 가지로, 1. 타입을 하나만 남기기Component 어노테이션이나 xml에서 한 가지만 컨테이너에 등록을 해서 헷갈릴 여지 자체를 주지 않는 방법이다.Component 어노테이션으로 온오프를 하게 되면 매번 패키지가 import됐다 제거됐다를 반복하게 되고 이는 컴파일이 다시 실행되므로 xml에 등록하고 사용하는 경우가 많다. (컴파일도 비용이기 때문이다) 2. @Qualifier 어노테이션으로 이름 지정하기해당 ..
기존 xml bean 태그로 작업하다 어노테이션으로 변경했더니 bean을 찾지 못하는 에러가 발생했다.xml에서 어노테이션을 인지할 수 있도록 총 2가지의 작업을 해야하는데, 범위지정이 빠져 발생한 오류였다. 기존 루트 앨리먼트 어노테이션을 인지할 수 있도록 변경한 루트 앨리먼트 어노테이션을 찾을 범위를 지정해주는 태그*test패키지 안에 있는 파일에서 어노테이션을 찾겠다는 설정이다. (해당 태그가 빠져 오류 발생)
DBeaver에서 MySQL database를 연결하려고 하니 Public Key Retrieval is not allowed 오류가 발생했다.검색 결과 8.x버전 이후부터 발생하는 문제로 보완이 강화되어 발생하는 문제라고 한다. 해당 문제를 해결하기 위해서는 설정 하나를 true로 설정하면 된다.먼저 문제가 되는 계정에서 Edit connection에 들어간다. connection 설정 창에서는 Driver properties에 들어가 allowPublicKeyRetrieval을 true로 설정하면 된다. 이후 Test Connection 또는 연결을 다시 해주면 정상적으로 연동되는 것을 확인할 수 있다.참고로 MySQL은 계정 아래에 여러 database가 있는 형태이므로 root 계정을 연동시켜두면..
심각: Context initialized 이벤트를 [controller.common.SampleListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver at controller.common.SampleListener.contextInitialized(SampleListener.java:32)(생략) ... 29 more 분명 셀레니움과 WebDriver 파일을 buildpath 했고 셀레니움 크롤링 테스트를 java에서 확인할 때는 오류가 발생하지 않았는데, 리스너에 적용시키고 서버로 실행시키려고 하니 해당 오류가 발생했다. 해결하는 법은 WEB-INF 하위에 lib 폴더에 직접 ..
구글 로그인 시도 시 팝업까지는 뜨지만 팝업이 로딩되지 않고 빈 페이지로 남아있는 경우, 사용자 인증의 승인된 JavaScript 원본 URI의 주소가 문제다. 이 주소가 잘못되어 있다면 수정하면 되는데 여기서 첫 번째 URI처럼 포트번호를 적어뒀다면 제대로 실행되지 않는다.전의 구글 버전에서는 되는 것 같아보였는데, 신 버전에서는 지원하지 않는 모양이다... 두 번째 URI처럼 localhost까지만 적어두면 정상작동되는 것을 확인할 수 있다.
JDBC에서 플레이스홀더(물음표 ?)에서 2번째에 해당하는 값이 누락됐을 때 뜨는 오류이다. 이 부분을 확인하면 되며, 보통 오탈자로 인해 발생한다.JDBC에서는 대부분의 오류가 SQLException으로 발생하기 때문에 내용을 더욱 자세히 살필 필요가 있는 것 같다.
멤버 테이블에 있는 닉네임에 unique 제약조건이 있을 때,A 닉네임을 가진 사람을 다시 A 닉네임으로 업데이트할 때 발생하는 오류이다. A 닉네임은 이미 해당 테이블에 있는 값이기 때문에 사용할 수 없다는 것이다.하지만 프로젝트 설계 상 개인정보를 업데이트할 때 업데이트가 한 번에 진행되기 때문에 동일한 값도 다시 업데이트되어야하는 상황이다. 이 때는 두 가지 방법이 있다. 1. Controller의 데이터를 전적으로 신뢰하는 방법Controller가 주는 데이터가 unique하다고 생각하는 것이다. 이미 사전에 검증을 거치고 DB에 데이터가 전달되는 경우에는 이 방법을 사용할 수 있고, 이 방법은 테이블의 unique 제약조건을 삭제하는 것이다.단점은, Controller에서 넘어오는 데이터가 un..
셀레니움4로 동적 크롤링을 하는데 대기시간을 주는 방식이 예전 방식이라 변경했더니 잘 연결되던 페이지가 data:로만 뜬다.이유는 대기시간을 주는 위치도 변경되었기 때문이다. 페이지 연결 driver.get(URL); 코드를 대기 이전으로 순서를 옮겼더니 해결됐다.
오류메세지 기록 : Server Tomcat v10.1 Server at localhost failed to start. 서버에서 프로젝트 내리고 다시 올리기톰캣 실행 경로에서 발생하는 충돌에러가 날 수도 있어 해당 프로젝트 톰캣 서버 삭제 후 실행환경을 재구축 하는 방식으로, 서버에서 프로젝트를 내린 뒤 다시 서버를 실행해봤다. 물론,,, 해결되지 않았다... 이렇게 해결되는 경우도 있다고 한다. web.xml 정리어노테이션과 web.xml 설정 충돌로 서버가 켜지지 않을 수 있어 먼저 web.xml을 정리했다.전의 프로젝트에서 어노테이션이 달린 서블릿 파일을 복사해왔는데, 이 때 web.xml에 태그가 자동으로 추가된 듯 싶다.그러자 이제 서버는 켜지지만 index.jsp파일을 찾지 못하고 있다...
SQL Error [2449] [72000]: ORA-02449: unique/primary keys in table referenced by foreign keys 해당 테이블의 컬럼을 foreign key로 참조하고 있는 테이블이 있어 삭제가 불가능하다는 내용으로,자식테이블을 먼저 삭제하거나 cascade constraints라는 명령어를 통해종속되어있는 제약조건을 삭제하며 테이블을 삭제 해버릴 수도 있다. DROP TABLE 테이블명 CASCADE CONSTRAINTS;