프로그램/IntelliJ

[JAR 구동 시 에러] 타임리프 문법 에러!

john_ 2023. 8. 30. 17:39
728x90

로컬에서 타임리프를 사용해서 개발하다가 JAR 파일을 생성하여 구동시킬때 

타임리프 사용하는 페이지에서 에러가 발생하는것을 파악했습니다.

문제는 다름아닌 application.properties의 설정과,

controller에서의 리턴 하는 페이지에 " / " 가 붙어있어서 문제가 생겼습니다.

 

 


발생원인 

 

application.properties

# Thymeleaf 템플릿 엔진 설정
spring.thymeleaf.enabled=true  # Thymeleaf 사용 활성화
spring.thymeleaf.prefix=classpath:/templates/  # 템플릿 파일 위치 지정
spring.thymeleaf.suffix=.html  # 템플릿 파일 확장자 지정

 

controller에서 문제가 있었던

        return "/pages/rackdetailsearch/tableCard";

리턴의 " / " 가 에러발생의 원인이었습니다.

 


 

JAR파일은 생성될때 내부의 디렉토리가 새로 생성되면서 application.properties에서 적용되어 있는  

 

classpath와 충돌되어 템플릿의 위치를 찾을수 없게 될 가능성이 있었습니다.

 

따라서 application.properties에서 해당사항을 주석처리 하여 수정하고

## Thymeleaf 템플릿 엔진 설정
#spring.thymeleaf.enabled=true  # Thymeleaf 사용 활성화
#spring.thymeleaf.prefix=classpath:/templates/  # 템플릿 파일 위치 지정
#spring.thymeleaf.suffix=.html  # 템플릿 파일 확장자 지정

 

controller에서 리턴값의 " / " 를 제거하였더니 다시 정상적으로 동작했습니다.

        return "pages/rackdetailsearch/tableCard";

 

생각보다 간단한 해결방법이었는데 한참 고생했네요 ㅠㅠ

 

로컬에서 개발하면서 확인할때는 상관이없어서 그대로 JAR로 export 시키면서 생긴 문제들이었습니다...

확실히 배포하면서 생기는 문제는 또 다르게 생기는거 같네요...

 

에러가 생길때는 조금 더 상식적인 생각을 해야할거같습니다....

728x90