Server/Tomcat
Tomcat :: tomcat8 이상 사용시 Context Resource factory 주의 사항
초록 (green)
2016. 11. 21. 23:15
웹 어플리케이션 프로젝트를 분석하다가 다음과 같은 오류가 계속 발생했다.
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
라는 오류가 발생하였고 인터넷을 검색하던 중 오류를 해결할 수 있게 되었다.
실제로 현재 톰캣8.5 버전을 사용하고 있는데,
1 2 3 4 5 6 7 8 9 10 11 12 | <Context> <Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource" username="dbid23geb" password="dbpass23geb" driverClassName="oracle.jdbc.OracleDriver" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" url="jdbc:oracle:thin:@localhost:1521:XE" maxActive="500" maxIdle="100"/> </Context> | cs |
Context Resource factory 요소를 다음과 같이 사용하고 있었다.
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
톰캣8.0 이상을 사용하는 경우에는 factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory" 로 바꿔줘야 한다.
톰캣7.0 이하일 경우 dpcp, 톰캣8.0 이상일 경우에는 dbcp2로 사용하면 된다.