티스토리 뷰
정말 뭐 하나 쉽게 되는것이 없더군요.
남들은 별 문제 없이 한번에 하나... 나만 이러나... 이럴려고 개발자 할려 했나 하는 자괴감.. 어쩌고...
여튼 생겼던 문제들과 해결한 방법들을 남겨봅니다. (스크린샷들을 남겼어야 했는데..)
참고로 스프링4를 사용중입니다.
1. slf4j 의존문제
이클립스에서 스프링 프로젝트를 일단 시작하면
콘솔에 slf4j 관련하는 문제가 발생합니다. 예외오류 문구를 읽어보면 conflict가 발생한다 뜨는데 이점은 pom.xml설정을 다음과 같이 수정해줍니다.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
추가한 스프링 라이브러리에 다음과같이 exclusion을 추가해줍니다.
2. URI를 mapping하지 못하는 문제
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/WEB-INF/views/entryPage/EntryPage.jsp] in DispatcherServlet with name 'appServlet'
컨트롤러 어노테이션 추가해주었고 requestMapping도 잘 했는데 위와 같이 문제가 발생합니다.
해결을 위해 src/main/webapp/WEB-INF/web.xml을 열어서 다음과 같이 수정합니다.
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
여기서 uri패턴을 /로 수정해줍니다. 사실 와일드카드로 *가 왔으니 문제가 없어 보이는데 왜 매핑을 하지 못하는지 모르겠네요
스프링이 오픈소스인 만큼 소스를 열어보면 알 수 있긴할텐데요 ㅎㅎ;
3. JSP파일에서 js,css등 정적파일을 include하지 못하는 문제
역시 어려운 문제는 아닙니다. 사실 스프링 없이 tomcat으로 하드코딩 할려 할때도 정적파일 include 시키기 위해선
서버폴더에 있는 tomcat 설정파일인 web.xml에서 확장자들을 별도로 추가해줘야 하지만
스프링은 간단히 해결할 수 있습니다.
servelet-context.xml 파일을 열어보면 다음과 같은 라인이 있습니다.
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
/resources 경로로 시작되는 파일들은 servletDispatcher가 request들을 가로채지 않고 바로 해당하는 파일경로(URI)에 접근한다는 의미입니다.
즉 controller, requestMapping을 거치지 않는다는 의미죠.
다시말해서 이전에 스프링에서 개발하지 않을땐 jsp가 있는 폴더에 js css를 같이 두었는데
이젠 resources파일 아래에 둬야 한다는 의미입니다.
만약 view폴더에 두고 싶다면 locaton만 바꾸면 되지 않을까 싶긴한데 보안상 이렇게 별도로 두는걸테니
이대로 개발환경을 두는게 나겠죠.
현재까지 환경설정하는데만 세가지 문제가 크게 나왔고 정리를 해봤습니다.
틀린부분은 지적 바랍니다 ( _ _)
'프로그래밍 > Spring' 카테고리의 다른 글
스프링 classpath 경로 문제 (1) | 2017.01.25 |
---|---|
스프링 사용하기 (0) | 2017.01.24 |
- Total
- Today
- Yesterday
- 여행
- peram jam
- compile
- regex
- yiruma
- C language
- printf
- link
- cpp
- kernerl
- 문자열
- 드럼
- Algorithm
- C++
- linux
- 악보
- 사천
- 중국여행
- Spring
- 알고리즘
- Codejam
- 피아노
- Pointer
- 이루마
- STL
- 코드잼
- 카카오 공채
- 중국
- 정규표현식
- python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |