본문 바로가기

SERVER/Error

[Error] Tomcat 구동 오류 - 심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생

 

Tomcat 구동 오류 ( Maven 사용 시)

 

1. root-context.xml 오류

심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 33 in XML document from ServletContext resource [/WEB-INF/spring/root-context.xml]
is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 33; columnNumber: 57; cvc-complex-type.2.4.c: 
일치하는 와일드 카드 문자가 엄격하게 적용되지만 'context:component-scan' 요소에 대한 선언을 찾을 수 없습니다.

 

>>  root-context.xml 의 

<context:component-scan base-package="org.spb.sample"></context:component-scan> 주석 처리

 

임시 테스트용 파일이었어서 지워도 문제 없음.

 

 

2. hikariConfig - driverClassName 오류

심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hikariConfig' defined in ServletContext resource [/WEB-INF/spring/root-context.xml]:
Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.RuntimeException:
Failed to load driver class oracle.jdbc.driver.OracleDeriver in either of HikariConfig class loader or Thread context classloader

 

 

>>  1) pom.xml - log4jdbc-log4j2-jdbc4 라이브러리 추가

		<!-- log4jdbc-log4j2-jdbc4 -->
		<dependency>
		    <groupId>org.bgee.log4jdbc-log4j2</groupId>
		    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
		    <version>1.16</version>
		</dependency>

 

2) 'src/main/resources' 경로에 log4jdbclog4jdbc.log4j2.properties 파일 생성 및 코드 추가

 

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

 

3) root-context.xml - JDBC 드라이버와 URL 정보 수정

	<!-- Root Context: defines shared resources visible to all other web components -->
		<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
			<property name="driverClassName"
				value="oracle.jdbc.driver.OracleDeriver"></property>
			<property name="jdbcUrl"
				value="jdbc:oracle:thin:@localhost:1521:java"></property>
			<property name="username" value="book_ex"></property>
			<property name="password" value="1234"></property>
		</bean>
<!-- Root Context: defines shared resources visible to all other web components -->
		<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
			<property name="driverClassName"
				value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
			<property name="jdbcUrl"
				value="jdbc:log4jdbc:oracle:thin:@localhost:1521:java"></property>
			<property name="username" value="book_ex"></property>
			<property name="password" value="1234"></property>
		</bean>

 

4) pom.xml - log4j-api, lo4g-core 라이브러리 추가

<!-- log4j-api -->
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-api</artifactId>
		    <version>2.0.1</version>
		</dependency>
		<!-- log4j-core -->
		<dependency>
		    <groupId>org.apache.logging.log4j</groupId>
		    <artifactId>log4j-core</artifactId>
		    <version>2.0.1</version>
		</dependency>

 

오랜만에 보는 헬로 월드.

 

 

 

참고 : https://okky.kr/article/708472?note=1963706 ,

https://kimvampa.tistory.com/63