728x90
반응형
JSTL을 진짜 오래 써오다 머스테치가 핫(?)하다고 하여 서버 템플릿 엔진의 일종인 머스테치(mustache)를 공부/개발하던 중 404 PageNotFound 에러가 발생
## 이동욱 개발자님의 책내용에 머스테치(mustache)를 공부
## 환경정보
- JDK 11
- SpringBoot v2.1.9
- Eclipse 2019-09 R
- Maven 3.6.3
## 현상
Contoller 에서 /cluster/dashboard 로 접속이 되면 /templates/cluster/cluster_dashboard.html 으로 매핑이 되어야 하는데 404 PageNotFound 에러발생
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Dec 28 20:28:26 KST 2020
There was an unexpected error (type=Not Found, status=404).
No message available
[2020-12-28 20:28:17.837] [INFO ] [restartedMain] o.s.s.c.ThreadPoolTaskExecutor:171 - Initializing ExecutorService 'applicationTaskExecutor'
[2020-12-28 20:28:17.951] [INFO ] [restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping:58 - Adding welcome page template: index
[2020-12-28 20:28:19.220] [INFO ] [restartedMain] o.s.b.d.a.OptionalLiveReloadServer:57 - LiveReload server is running on port 35729
[2020-12-28 20:28:19.339] [INFO ] [restartedMain] o.s.b.w.e.tomcat.TomcatWebServer:202 - Tomcat started on port(s): 8080 (http) with context path ''
[2020-12-28 20:28:19.344] [INFO ] [restartedMain] k.c.c.gpms.ep.web.WebAppStarter:59 - Started WebAppStarter in 7.844 seconds (JVM running for 8.721)
[2020-12-28 20:28:19.345] [INFO ] [restartedMain] k.c.c.gpms.ep.web.WebAppStarter:48 - WebStarted
[2020-12-28 20:28:25.966] [INFO ] [http-nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]:173 - Initializing Spring DispatcherServlet 'dispatcherServlet'
[2020-12-28 20:28:25.967] [INFO ] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet:525 - Initializing Servlet 'dispatcherServlet'
[2020-12-28 20:28:25.976] [INFO ] [http-nio-8080-exec-1] o.s.web.servlet.DispatcherServlet:547 - Completed initialization in 9 ms
[2020-12-28 20:28:26.034] [DEBUG] [http-nio-8080-exec-2] k.c.c.g.e.w.c.c.ClusterController:45 - call - /cluster/dashboard
[2020-12-28 20:28:26.051] [WARN ] [http-nio-8080-exec-2] o.s.web.servlet.PageNotFound:1250 - No mapping for GET /cluster/cluster/cluster_dashboard
## 분석/해결
- application.properties - springboot 설정파일확인
server.port=8080
spring.mvc.static-path-pattern=/static/**
spring.mustache.suffix:.html
spring.mustache.prefix=classpath:/templates/
- 리소스 폴더구조 확인
- pom.xml
- packaging 을 jar -> war로 변경
- 해결실패
- Controller 의 return 값 변경으로 해결
- return "/cluster/cluster_dashboard" 에서 return "cluster/cluster_dashboard" 변경으로 해결
- include 경로변경 - {{>/layout/left}} -> {{>layout>left}} 으로 변경
- jar 파일로 SpringBoot Application 실행시 View 페이지의 절대경로, spring.mustache.prefix 인식에 대한 이슈가 있는 것 같다.
## 에필로그
- 새로운 프레임워크를 개발하여 적용하는 것은 역시나 시행착오가 많다.(프로토타입이 정말 중요한듯..!!)
- 머스테치는 JSTL에 비해서 속도가 정말 빨라서 좋은듯!!. (앞으로도 계속 사용할 듯 하다.)
<끄읕>
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
SpringSession을 이용한 로그인시 InvalidClassException 발생 (0) | 2022.05.09 |
---|---|
SpringBoot Session JDBC 사용시 테이블명 변경하는 방법 (0) | 2022.04.18 |
[STS] STS를 이용한 Springboot Application 쉽게 만들기 (0) | 2022.04.05 |
[SpringBatch] 구동시 'batch_job_instance' doesn't exist 에러발생 (0) | 2021.08.03 |
Spring Native 란? (0) | 2021.03.25 |