에러해결 Log) The prefix “tx” for element “tx:annotation-driven” is not bound.
사용환경
- MacBook Air (M1, 2020) 16GB
- JDK 8
- Spring Tool Suite 4.14.0
- tomcat 8.5
에러의 발생 1
- DB에 데이터를 삽입하는 테스트를 진행할 때 데이터는 들어갔지만 예외가 발생해 결과적으로는 실패인 상황에도 DB에는 이미 해당 데이터가 있기 때문에 그 데이터를 삭제하든지 이클립스상에서 삽입할 데이터를 바꾸든지 해야 했다.
- 이것은 상당히 귀찮은 작업이었기 때문에… 예외 발생시에는 롤백을 시키려고
@Transactional
을 써 보려고root-context.xml
에 위의 태그를 추가했다. 그리고 마주한 빨간줄…
- 에러 내용을 보니까 접두사 선언이 되어 있지 않은 것이 문제였다.
문제 해결 1
- 그래서 스택오버플로우를 통해 접두사 선언을 해 주었다.
xmlns:tx="http://www.springframework.org/schema/tx"
에러의 발생 2
- 하지만 여전히 에러는 사라지지 않았고 새로운 메시지가 나왔다. 여전히 관련된 선언을 찾을 수 없다는 내용…ㅠ 해당 메시지로 한 번 더 구글링했다.
문제 해결 2
- 역시 스택오버플로우에서 해당 문제에 대한 해답을 찾을 수 있었다. 접두사
tx
와 관련해 스키마 로케이션을 더 추가해 주어야 했던 것이었다…
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
- 여기까지 하고 나니까 더 이상의 에러가 없는, 클린한
root-context.xml
을 볼 수 있었다.