spring-boot-devtools + gradle을 Eclipse로 이동하면 ClassCastException
5801 단어 DevTools이클립스spring-bootgradle
문제
ClassCastException
가 발생합니다.해결책
해설
참고)
[Java] Spring Boot에서 Hello World! (입문편) | 해양로드
1. 스타터 프로젝트 만들기
먼저 SpringBoot의 스타터 프로젝트를 만듭니다.
나중에 기본값으로
종속성으로 위에서만 선택합니다.
http://start.spring.io/starter.zip
http://start.spring.io/starter.zip?name=demo03&groupId=com.example&artifactId=demo03&version=0.0.1-SNAPSHOT&description=Demo+project+for+Spring+Boot&packageName=com.example.demo&type=gradle-project&packaging=war&javaVersion=1.8&language=java&bootVersion=1.5.10.RELEASE&dependencies=devtools&dependencies=thymeleaf&dependencies=web
2. HelloController.java의 작성
스타터 프로젝트가 완료되면
HelloController
를 추가합니다.HelloController.java
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World !!";
}
}
3. Spring Boot 애플리케이션으로 실행
프로젝트를 마우스 오른쪽 버튼으로 클릭하고 나오는 Spring Boot 응용 프로그램을 실행합니다.
Exception in thread "main" java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader
at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getUrls(DefaultRestartInitializer.java:93)
at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(DefaultRestartInitializer.java:56)
at org.springframework.boot.devtools.restart.Restarter.<init>(Restarter.java:140)
(略)
쵸 (삐뽀)
…라는 것이 이번 발단입니다. Java9에서.
그래서, 다음에 시도한 것이, 원래 gradle 프로젝트이니까, gradle에서 기동하면 되지 않을까요? 라고 일.
4. gradle의 "bootRun"에서 실행
(*^-゚)vィェィ♪
잘 작동했습니다! …라고 생각한 것도 잠시.
소스 코드를 수정해도 즉시 반영되지 않습니다 ...... orz
물론 gradle 태스크를 멈추고, 다시 실행하면 반영됩니다만, 모처럼
ClassCastException
를 사용하고 있기 때문에, 즉시 반영시키고 싶다!그리고 시행착오하는 일이 자주…
5. 프로젝트의 빌드 경로 변경
시행착오의 결과, 소스 코드를 보존했을 때의 자동 빌드 패스가, gradle의 빌드 패스와 맞지 않는 것을 깨달았습니다.
Eclipse의 빌드 경로 설정을 변경하지 않으면
DevTools
디렉토리 아래에 빌드 결과가 저장되는 것 같습니다.이것을 gradle 의 빌드에 맞추어 바꾸어 보면…
bin
… 출력 폴더: src/main/java
build/classes/main
… 출력 폴더: src/main/resources
build/resources
… 출력 폴더: src/test/java
☆(^o^)乂(^-^)☆ 히타타!!
소스 코드를 저장하면 즉시 반영됩니다!
※resources아래는 확인하고 있지 않으므로, 패스가 잘못되어 있으면 죄송합니다.
Reference
이 문제에 관하여(spring-boot-devtools + gradle을 Eclipse로 이동하면 ClassCastException), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miz21358/items/ae61ebdcbb9d8760e62b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)