반응형
springboot에 템플릿 엔진으로 velocity를 사용해보고 있는데,
아래와 같은 에러 메세지를 접하게 된다.
23:28:19.346 [XNIO-1 task-2] ERROR org.apache.velocity - ResourceManager : unable to find resource '/nav.vm' in any resource loader.
23:28:19.353 [XNIO-1 task-2] ERROR org.apache.velocity - #include(): cannot find resource '/nav.vm', called at arrival.vm[line 18, column 1]
23:28:19.365 [XNIO-1 task-2] ERROR io.undertow.request - UT005023: Exception handling request to /arrival
springboot를 사용하면 resources 밑에 templates < 디렉토리에 묶인 파일들은 알아서 view resolver로 등록을 해주게 되는데
templates 밑에 동일 depth로 .vm 파일들을 놔두면 위와같은 에러를 볼 수 없지만, 디렉토리 정리 겸 위와 같이 구조를 짜게 된다면
만날 수 있는 에러이다..
IDE로 IntelliJ를 쓰고 있는데, 각 디렉토리 생성 후 .vm파일들을 드래그해서 옮기게 되면
nav를 따로 빼서 상단 UI를 구성하는 뷰를 include해서 쓰고 있는데
#include("nav.vm")
와 같은 형태를
#include("../nav.vm")
로 바꿔버린다.. ?
해서.. IDE에서는 실행이 되지만, 이걸 서버에 배포하려고 해서 jar로 패키징한 후에 실행하려하면 해당 vm파일을 찾을 수 없다고 뜨는 에러이다.
사뿐히 디렉토리가 명시된 vm파일을 디렉토리참조를 제거해주면 오류가 해결된다.
참고로 template 엔진은 매우 깐깐해서 그냥 이름만 넣어드려야 한다.
아래는 오류 뱉으시는 부분이다.
#include("../nav.vm")
#include("/nav.vm")
이건 안 뱉음
#include("nav.vm")
반응형
'Development > Web' 카테고리의 다른 글
HTTP에 관해서 (0) | 2019.04.06 |
---|---|
[Spring] spring boot XML Response 매핑 (1) | 2017.06.01 |