잘 돌리고 있던 프로젝트에서 갑자기 에러가 발생했다. 

IDE를 인텔리제이로 변경하려고 이클립스 소스를 새로 build 한 후, 서버를 시작하니 에러가 발생해 다시 이클립스로 와서 확인해보니 동일한 문제가 발생... 

 

 

 


 

 

에러 로그

 

❗    에러 내용

 

org.xml.sax.SAXParseException: 요소 유형 "tiles-definitions" 을(를) 선언해야 합니다.
...
nested exception is org.apache.tiles.definition.DefinitionsFactoryException: XML error reading definitions

 

 

 

 

 

혹시 몰라 maven clean, update project, maven install, maven build 한 후 처리했다. 

위의 오류는 tiles 버전이 맞지 않을 때 발생하는 오류였다. 

사용하는 부분들의 버전을 확인해 보았다.

 

 

1️⃣ pom.xml 

 

pom.xml 의 tiles 버전 확인 : 현재 버전은 3.0.8 이었다.

 

 

 

2️⃣ action-servlet.xml

 

tiles3 resolver 확인 : 현재 value 는 tiles3 으로 설정되어 있었다.

<beans:bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
	<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
	<beans:property name="order" value="90" />
</beans:bean>

 

 

3️⃣ common-tiles.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC  
        "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"  
        "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">

 

?! 사용하는 tiles header의 definitions 가 2.1 으로 설정된것을 발견했다.

아무래도... 그전에 사용하던 캐시들이 남아있다가 새로 clean 하고 build 하면서 이제서야 오류를 발생시켰던 것 같다.

버전에 맞게 바꿔준다.

 

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE tiles-definitions PUBLIC  
        "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"  
        "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

 

 

 

 

 

 

 

 

 

[참고]

https://namubada.net/289

 

[스프링 오류]nested exception is org.apache.tiles.definition.DefinitionsFactoryException: XML error reading definitions(타

해당 오류의 경우 타일즈 버전이 낮을 때 발생할 수 있다. 타일즈 버전을 업그레이드하면 해결된다. nested exception is org.apache.tiles.definition.DefinitionsFactoryException: XML error reading definitio..

namubada.net

 

'Spring' 카테고리의 다른 글

[Spring] spring 에 swagger 적용하기  (0) 2021.07.26