https://spring.io/guides/gs/securing-web/ Securing a Web Application
https://spring.io/guides/gs/convert-jar-to-war/ Converting a Spring Boot JAR Application to a WAR
학습내용 정리
1.
gradle 설치 혹은 업그레이드
http://www.gradle.org/downloads
파일 다운로드 받고 압축해제 후 원하는 위치로 이동 해줍니다.
예: D:\gradle-1.11
기존 gradle 폴더는 지워버리고
환경변수에서 GRADLE_HOME=D:\gradle-1.11 로 설정합니다.
PATH 에 %GRADLE_HOME%\bin 를 추가합니다.
gradle -version
: 버전 출력
gradle
: welcome message 출력
gradle tasks
: 사용가능한 태스크 목록 출력. gradle taskname 형태로 실행
gradle wrapper
: gradlew.bat 파일을 생성 시켜줍니다. 이 파일은 시스템내에 gradle이 설치되어있지 않아도 알아서 다운로드하고 빌드해줍니다. 이렇게 wrapper를 생성하고 프로젝트를 공유하면 그래들이 설치되어있지 않은 유저도 바로 빌드 할 수 있게됩니다.
2.
가이드에서
build.gradle
MvcConfig.java
home.html
hello.html
까지만 작성하고 실행해보면 ( gradlew clean build )
다음과 같은 에러가 발생하는데
Execution failed for task ':bootRepackage'.
public static void main(String[] args)
메소드를 가진 설정 클래스가 없어서 그런것입니다.
가이드에선 Application.java 파일을 만들어 주면 제대로 컴파일됩니다.
3.
java -jar build/libs/gs-securing-web-0.1.0.jar
앱을 실행해보면 로그인 창이 나타나는데
build.gradle 에서
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
// compile("org.springframework.boot:spring-boot-starter-security")
compile("org.thymeleaf:thymeleaf-spring4")
testCompile("junit:junit")
}
compile("org.springframework.boot:spring-boot-starter-security")
를 주석처리하고 다시 빌드하고 실행해보면 로그인 창이 나타나지 않습니다.
4.
WebSecurityConfig.java : security 설정 클래스
5.
로그아웃 처리
http://localhost:8080/login?logout
6.
war 파일 만들기
build.gradle 파일에 아래 내용 추가
apply plugin: 'war'
war {src/main/java/hello/HelloWebXml.java 파일 생성
baseName = 'gs-securing-web'
version = '0.1.0'
}
톰캣에 넣고 돌려보면
java.lang.ClassNotFoundException: org.apache.tomcat.websocket.server.WsSci
와 같은 에러가 발생하는 경우가 있는데
이경우 가장 편한방법은 에러메시지에 나오는 톰캣버전과 같은 버전의 톰캣에서 돌리면 에러가 발생하지 않습니다.
참고
http://stackoverflow.com/questions/20922958/crash-deploying-spring-boot-war-in-tomcat
댓글 없음:
댓글 쓰기