본문 바로가기
쿤즈 Dev/Spring Boot

[Spring Boot] Mybatis 사용시 "[xX][mM][lL]"과 일치하는 처리 명령 대상은 허용되지 않습니다 해결방법

by Koonz:) 2022. 3. 11.
728x90

실무에서는 JPA와 더불어 Mybatis 역시 많이 사용하고 있는 방법 중 하나입니다. 현재 잘 운영되고 있는 시스템이라면 굳이 최신으로 꼭 변경해야 할 의무는 없으니까요.


이번 포스팅에서는 Mybais 사용중 발생하는 에러중 하나에 대해서 해결 방법을 알아보려 합니다. Spring Boot와 Mybatis를 연결해서 DB를 접근해서 사용하시는 분들도 많으실것 같아요.


XML 관련 에러

열심히 Mybatis가 연동된 SQL 문장을 고치던 도중 아래와같은 에러가 갑자기 발생하기 시작했습니다.
"[xX][mM][lL]"과 일치하는 처리 명령 대상은 허용되지 않습니다.

아무런 에러없이 잘 되던 어플리케이션이 위와같은 에러가 발생하면서 톰캣도 올라오지 않는 상태가 되어버렸습니다. 이유를 찾아보니 XML관련 에러더군요. 현재 사용하고 있는 XML 파일의 시작은 이렇습니다.

 

<?xml version="1.0" encoding="UTF-8"?>


이렇게 앞뒤로 물음표(?)가 붙어있는 문법입니다. XML은 Tag가 있어서 Tag를 구분으로 파싱해서 내용을 파악할 수 있는 문법구조에요. 원인이 뭘까 한참 보던 중 이상한 점 하나를 발견했습니다.


첫 줄의 공백은 안된다

XML 파일의 첫 줄은 항상 <?xml version ... ?> 와 같이 되어 있습니다. 이때 공백문자가 들어가는 경우는 에러가 발생합니다.

 

<?xml version ... ?> : 정상
  <?xml version ... ?> : 비정상


가장 처음에 공백이 있으면 위와 같은 에러가 발생하게 됩니다. 그래서 이 공백을 지워주고 다시 어플리케이션을 실행해주시면 정상적으로 동작합니다.


이번 포스팅에서는 XML과 관련된 에러를 트러블슈팅 하는 것에 대해서 포스팅 해보았습니다. 자주 발생되는 상황은 아니면 아주 간단한 내용일 수 도 있지만 에러와 버그는 알지 못하면 하루종일이 걸릴수도 있고 몇날 며칠이 걸릴수도 있으니 알아두면 항상 도움이 되는 것 같습니다. 도움이 되셨으면 합니다. 이상입니다.

댓글