Spring 웹 프로젝트 생성
Package Explorer 창에서 오른클릭 > New > Other... > Spring > Spring Project > Next > Spring MVC Project >
Project name 작성 > Next > 사용할 패키지명 작성 > Finish
서버에 추가
Servers 창에서 오른클릭 > Add and Remove... > 해당 프로젝트 선택 및 Add > Finish
문제)
프로젝트 생성 후 Package Explorer에 오류 마크가 보였고
Run As > Maven install : 실행시 아래와 같은 오류가 발생하였다
내용을 살펴보면 라이브러리 파일을 다운로드 받던 도중 오류가 발생하고 있다.
다른 것 보다 주의 깊게 살펴봐야 할 부분은 "Error code 501, HTTPS Required" 부분이었다.
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building spring_map3d 1.0.0-BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-context/3.1.1.RELEASE/spring-context-3.1.1.RELEASE.pom
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-webmvc/3.1.1.RELEASE/spring-webmvc-3.1.1.RELEASE.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.902 s
[INFO] Finished at: 2020-04-07T14:36:39+09:00
[INFO] Final Memory: 3M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project postmedia: Could not resolve dependencies for project kr.co:postmedia:war:1.0.0-BUILD-SNAPSHOT: Failed to collect dependencies at org.springframework:spring-context:jar:3.1.1.RELEASE: Failed to read artifact descriptor for org.springframework:spring-context:jar:3.1.1.RELEASE: Could not transfer artifact org.springframework:spring-context:pom:3.1.1.RELEASE from/to mvn2 (http://repo.maven.apache.org/maven2): Failed to transfer http://repo.maven.apache.org/maven2/org/springframework/spring-context/3.1.1.RELEASE/spring-context-3.1.1.RELEASE.pom. Error code 501, HTTPS Required -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
해결)
해당 오류에 대응되는 해결책은 repository로 걸려있는 도메인의 프로토콜을 https로 변경하는 것이었다.
pom.xml
<repositories>
<repository>
<id>mvn2</id>
<!--<url>http://repo.maven.apache.org/maven2</url>-->
<url>https://repo.maven.apache.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
메이븐 인스톨
다시 메이븐 인스톨하면 정상적인 처리가 완료된다.
Run As > Maven install
이후 샘플로 만들어진 페이지를 띄우기 위해 서버 구동 후 페이지를 띄우면 아래처럼 오류가 발생했다.
접속주소 http://localhost:8080/test/
org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/test/] in DispatcherServlet with name 'appServlet'
server.xml 설정
server.xml 설정을 수정하였다.
/test 를 /test/ 로 수정하였다.
<Context docBase="spring_map3d" path="/test/" reloadable="false" source="org.eclipse.jst.jee.server:spring_map3d"/>
web.xml 설정
web.xml 설정을 추가하였다.
이제 원하던 페이지가 잘 나온다.
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>