프로젝트 업데이트를 받은 후 서버를 실행하니 아래와 같이 바로 오류가 났다.
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSourceFactory]
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:81)
-------------------------------------생략------------------------------------------
(--생략--) The DB Connection Pool did not receive a connection from the database.
처음에는 2번째 오류만 보고 DB연결이 잘 되지 않는거라고 생각했다.
실제로 설정파일에서 db pool이 변경되었는데 그에 따라 server.xml에 db정보가 적혀있어야 했는데 없었기 때문이다.
하지만 server.xml에 db정보를 추가해줘도 동일한 오류가 났다. 그래서 살펴보니 첫번째 오류가 문제였다.
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSourceFactory]
DataSourceFactory라는 클래스를 찾지 못해 발생하는 오류라고 해서 검색해보니 Tomcat JDBC Pool은 톰캣 버전 7.0.19 이상부터 도입되었다고 해서 버전을 올려야 한다는 글을 발견했다.
그래서 8.0.37버전으로 변경하려고 보니 jdk도 7이상으로 써야한다고 해서 jdk도 1.8 버전으로 바꿔서 결국 자바 버전과 톰캣 버전 모두 변경을 하였다.
이제 모든 버전을 바꿨으니 오류가 나지 않아야 하는데 또 아래와 같이 오류가 났다.ㅠㅠㅠㅠ
이것저것 검색해보니 Tomcat 버그이기 때문에 이 문제가 해결된 8.0.42 이상으로 사용해야한다고 했다.
(참고 : https://avaiable.tistory.com/261)
이제 제발 끝났으면 하고 8.0.42 이상 버전의 톰캣을 새로 설정해주니 오류없이 잘 돌아갔다ㅠㅠㅠ
아마 이런 오류는 이제 거의 없을 것 같지만 그래도 혹시 다음에도 생긴다면 빨리 찾으면 좋겠다.
'Java > 정리' 카테고리의 다른 글
컴파일? 빌드? 배포? (0) | 2022.10.12 |
---|---|
ServletOutputStream (0) | 2022.06.24 |
[Java] jsp에서 다운로드 로직 구현 시 주의할 점 (0) | 2022.03.29 |
[Java] 파일 다운로드할 때 파일명 지정하는 방법 (0) | 2022.03.29 |
[eclipse] A java Runtime Environment(JRE) or Java Development Kit(JDK) must be available in order to run Eclipse. (0) | 2022.01.09 |