'Web/Spring'에 해당되는 글 3건

[오류] Cannot change version of project facet Dynamic Web Module

Web/Spring

Eclipse내 Tomcat에서 돌리려고 하니 



java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

위와 같은 Exception이 발생하면서 tomcat에 project가 deploy 되지 않았다.



Eclipse내 Markers에서 다음과 같은 Error를 확인했다.



Cannot change version of project facet Dynamic Web Module to 2.4

Maven Project 갱신을 위해서 Update Project 진행 후 다음과 같은 Error가 발생되었다.


▶ 해결방안


deployment descripter file(web.xml)를 보면 version=2.4으로 되어있다.



그러나 Project Facets에서는 아래와 같이 Dynamic Web Module Version 2.3 으로 되어있다.

2.3 -> 2.4로 변경하려면 다음과 같이 안된다!!!




그럼 어떻게 변경 가능할까?

해당 project 경로 내에 .settings 로 이동하면 다음과 같은 파일 목록를 찾을 수 있다.




org.eclipse.wst.common.project.facet.core.xml 파일을 연다. 

2.3 -> 2.4 으로 변경한 뒤 Update Project 진행한다.




Project Facets를 보면 2.4 변경되어 있음을 확인 할 수 있다.



Dynamic Web Module의 Version은 톰켓 버전에 따라서 servlet spec version이 다르다. 다음 url에서 확인 후 알맞게 지정하자!

http://tomcat.apache.org/whichversion.html


'Web > Spring' 카테고리의 다른 글

Resolvering Views  (0) 2016.07.14
[STS] encoding 관련 warning 처리  (0) 2015.09.26

Resolvering Views

Web/Spring

※ Resolvering Views 


▶ Resolvering Views 란?

요청한 결과(model)를 사용자에게 어떠한 방법(View)으로 보여지도록(rendering) 할건지 정하는 방법을 의미한다.


▶ ViewResolver 구현 클래스

- UrlBasedViewResolver

 ViewResolver의 구현체로 특별한 맵핑 정보 없이 view 이름을 URL로 사용

 View 이름과 실제 view 자원과의 이름이 같을 때 사용할 수 있다.


- InternalResourceViewResolver

 웹 어플리케이션의 WAR 파일 내에 포함된 뷰 템플릿을 찾는다.

 뷰 템플릿의 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여 구성

 

- BeanNameViewResolver

 논리적 뷰 이름과 동일한 ID를 갖는 <bean> 으로 등록된 View의 구현체를 찾는다.



 

▶ InternalResourceViewResolver와 UrlBasedViewResolver 구분

InternalResourceViewResolver은 UrlBasedViewResolver를 상속받아 구현되어있다.



document에서는 어떠한 상황에서 InternalResourceViewResolver 사용하면 유용한지에 대해서 기술하고 있다.

1) AlwaysInclude: Controls whether either a forward or include is done.

2) ExposeContextBeansAsAttributes: Allows all beans in context to be available as request attributes, which means they can be referenced from the EL in JSP.

3) ExposedContextBeanNames: If non-null, specifies the list of beans that will be exposed, as opposed to all of them.


▶ ViewResolver 설정 방법



▶ ViewResolver 사용시 주의사항

UrlBasedViewResolver, InternalResourceViewResolver는 ViewResolver 우선순위를 마지막 순위를 갖도록 지정한다.


ex) 

 엑셀파일 다운로드를 위해서 BeanNameViewResolver를 이용, 'excelView'라는 이름으로 view 객체를 생성 놓았다.

 UrlBasedViewResolver, InternalResourceViewResolver를 ViewResolver 우선순위를 마지막 순위를 갖도록 지정하지 않는 경우에

 'excelView' 이름을 가진 실제 view 자원 존재한다면, 엑셀파일 다운로드를 위해서 선언된 'excelView' 이름의 view 객체가 실행되지 않을 수 있다.



▶  출처

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-viewresolver

http://isstory83.tistory.com/117

http://devbox.tistory.com/entry/Spring-ViewResolver-%EC%84%A4%EC%A0%95

http://stackoverflow.com/questions/17453032/what-different-between-internalresourceviewresolver-vs-urlbasedviewresolver

http://forum.spring.io/forum/spring-projects/web/64551-internalresourceviewresolver-and-urlbasedviewresolver


[STS] encoding 관련 warning 처리

Web/Spring

[WARN] Using platform encoding (MS949 actually) to copy filtered resources, i.e. build is platform dependent!


위와 같은 warning log가 발생하는 경우


- 해결방안

pom.xml 에 properties에 다음 두 라인을 추가하면 warning이 사라진다.


<properties>

....

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

</properties>

'Web > Spring' 카테고리의 다른 글

[오류] Cannot change version of project facet Dynamic Web Module  (0) 2017.06.23
Resolvering Views  (0) 2016.07.14