[이전글]
개발환경을 세팅했으면 무라도 베야지
json 으로 Hello world 프린트를 하려 한다.
삽질한 기록이다.
1장 JDK 삽질
EC2 에 올릴거였기 때문에 jdk를 바꿔야 했다. 원래는 jdk 1.8을 사용했는데 correttoo-11을 써야 했다.
오늘 내가 한 경험상 총 3개의 설정을 바꿔야 된다.
1. Preference --> Build, Execution, Deployment Gradle JVM --> Project SDK
2. File -->Project Structure --> Project SDK
3. build.gradle --> sourceCompatibility --> 11
2장 Lombok 삽질
따라했는데 HelloController의 Getter와 Setter가 계속 오류가 났다.
물론 그게 lombok 라이브러리가 import 안되어서 그런건 알았지만 멍청한 나는
intellij에 플러그인 설치했다고 라이브러리가 추가된 줄 알았다.
(전에 했던 데모 프로젝트는 내가 만들 때 부터 추가를 해서 문제가 없었지만 이 프로젝트는 내가 판게 아니라 난 있다고 생각했는데 따쉬)
3장 starter-web
모든 코드상의 오류를 해결하고 localhost 에서 확인을 하려는데 자꾸 이게 뜬다.
2장과 마찬가지로 저번에 했던 데모 프로젝트에는 내가 프로젝트를 만들때 부터 추가했던 starter-web 때문이였다.
코드를 추가하고 Gradle을 다시 빌드했다.
implementation 'org.springframework.boot:spring-boot-starter-web'
잘된다.
4장 annotationProcessor
@GetMapping(value = "/helloworld/string")
public String helloworldString() {
return "helloworld";
}
이 함수는 잘 불러져서 helloworld 가 출력이 됬는데
@GetMapping(value = "/helloworld/json")
public Hello helloworldJson() {
Hello hello = new Hello();
hello.message = "helloworld";
return hello;
}
어허 json은 출력이 안되고 500 internal server error no converter....이런 에러가 있는 whiteLabel page가 나온다.
이와중에 알게된 사실
- @RestController 라고 명시하면 ResponseBody 가 필요없다.
- @Controller라고 하면 ResponseBody 필요하다.
- 객체로 만들어서 return 할 경우 기본적으로 json형태인 key value쌍으로 만들어준다.
계속 찾다보니 문제는 json converter, Getter 와 Setter 문제로 줄어들었다.
- lombok이 내 jdk를 지원하지 않는것인가. --> 지원하더라
- jackson이 없나? --> 있다
- Getter와 Setter 문제인데 lombok 은 문제없는데..?
그래서 고민하다가 내가 전에 실행했던 demo project 를 봤는데
annotationProcessor 'org.projectlombok:lombok'
//힝 속았찡
추가하니까
번외 war 파일 생성
gradlew bootwar 안된다.
왜죠
그럴땐 Gradle에서 bootWar 을 눌러주면 생성된다.
Gradle 에 이게 필요할 수도 있다.
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
이제 요 war 를 ec2에 올려 배포하면 된다.
짜릿해
'Server > Spring Boot' 카테고리의 다른 글
SpringBoot #5 POST, Body, Param 으로 데이터 받기 (0) | 2020.04.30 |
---|---|
SpringBoot #4 Spring boot - JDBC - MySQL (0) | 2020.04.30 |
SpringBoot #3 TestCode, JPA, h2, API (0) | 2020.04.25 |
SpringBoot #1 개발환경 세팅(Mac) (1) | 2020.04.21 |
댓글