반응형
프로젝트명 | Su-p |
사용 | Java JavaScript PostgreSql |
프레임워크 | Spring Boot MyBatis |
라이브러리 | React |
Console 창에서는 잘 실행되던 쿼리문이 MyBatis 로 옮기니 Tag name expected Element is not closed 라는 에러가 발생했다. 해당 에러에 대해 살펴보니 일반적으로 XML 파싱 에러는 XML 문서의 구조가 잘못되었거나 태그가 제대로 닫히지 않은 경우에 발생한다고 한다.
근데 나는 </UPDATE> 태그를 간혹 깜빡하기도 해서 다시 살펴보니 나는 잘 닫았는데 .. 도대체 왜 이럴까?
문제원인
차근차근 에러 난 위치와 에러 메세지에 대해 생각해보니 쿼리문 내에서 사용한 ' > ' 태그가 문제였다. <(또는 >) 기호가 XML 태그로 인식될 수 있다.
해결방법
- SQL 쿼리문 내에 포함된 XML 태그 기호를 이스케이프 처리하여 XML 파서가 이를 태그로 인식하지 않도록 합니다.
- 예를 들어, < 기호는 <로, > 기호는 >로 변경할 수 있습니다.
- 이렇게 하면 SQL 쿼리문 내의 XML 태그 기호가 이스케이프 처리되어 XML 파서가 이를 태그로 인식하지 않게 됩니다.
아래와 같이 작성해주니 잘 동작하는 것을 확인할 수 있었다!
반응형