한바다
build.gradle오류 및 폴더전산연결 본문
[오류상황]
Post-mapper.xml에 select구문을 수정하고 저장 후 Gradle 리플래시 하고 나니
아래와 같이 에러가 발생
[에러코드]
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'Sixsence'.
> Could not resolve all artifacts for configuration ':classpath'.
> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.3.2.
Required by:
project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.2
> Dependency requires at least JVM runtime version 17. This build uses a Java 11 JVM.
* Try:
> Run this build using a Java 17 or newer JVM.
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
CONFIGURE FAILED in 4s
[에러코드 해석]
실패: 예외로 인해 빌드가 실패했습니다.
* 무엇이 잘못되었는지:
루트 프로젝트 'Sixsence'를 구성하는 중에 문제가 발생했습니다.
> ':classpath' 구성에 대한 모든 아티팩트를 확인할 수 없습니다.
> org.springframework.boot:spring-boot-gradle-plugin:3.3.2를 해결할 수 없습니다.
요구되는 대상:
프로젝트 : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.2
> 종속성을 위해서는 최소한 JVM 런타임 버전 17이 필요합니다. 이 빌드는 Java 11 JVM을 사용합니다.
* 노력하다:
> Java 17 이상의 JVM을 사용하여 이 빌드를 실행합니다.
> --stacktrace 옵션을 사용하여 실행하여 스택 추적을 가져옵니다.
> 더 많은 로그 출력을 얻으려면 --info 또는 --debug 옵션을 사용하여 실행하세요.
> 전체 통찰력을 얻으려면 --scan을 사용하여 실행하세요.
> https://help.gradle.org에서 추가 도움을 받으세요.
[에러원인]
폴더 마우스 우클릭>속성>Gradle로 들어가면 아래와 같이 나온다!
[에러 해결방법]
▶ 위와같이 Override workspace setting에 체크 해제를 하고 Program Argunents를 모두 비우고 난 후
gradle 리플래쉬후 다시 실행시키면 된다!!
[리액트-스프링부트-DB 로그인오류]
- 리액트 Login.js axios 부분-
const 로그인기능a = () => {
axios.post("http://localhost:9010/login",null,{
params: {
id : id,
password : password
}
})
.then(response => {
console.log(response);
if(response.status === 200){//로그인 성공시 200주소 보임 - 200은 성공 코드!!
setMessage("로그인 성공");
} else {
setMessage("로그인 실패");
}
})
.catch(e => {
setMessage('로그인 중 문제가 발생했습니다.');
})
}
- 스프링부트 Controller.java -
@PostMapping("/login")
public ResposeEntity<String> login(@RequestParam("id") String id, @RequestParam("password){
NaverUser user = loginService.login(id,password);
if(user != null) {
return ResponseEntity.ok("로그인 성공");
} else {//ResponseEntity.status = DB나 어떤 값에 대한 결과 상태
//HttpStatus = GET POST와 같은 메서드 기능이 잘 동작했느냐
//UNAUTHORIZED = 인증실패 주로 로그인실패
return ResponseEntity.status(HttpStatus.UNAUTHORIZED)
.body("로그인 실패");
}
[에러발생]
[에러원인]
: 스프링부트 WebConfig.java에 작성 시 아래와 같이 localhost:3000으로 지정해주었는데
.allowedOrigins("http://localhost:3000")
리액트 실행시 다른 서버가 사용중이라 3001번에서 실행시 에러가 발생하였다. 다른 서버 사용중을 끄고
3000번에서 실행시 아래와 같이 로그인 성공하였다.
☑️ 폴더 스프링부트에 import하기(gradle) /
- test-workspace폴더에 다운로드후 압축을 풀어준다. 해당폴더를 스프링부트에 연결시켜야 하기에
gradle이 보이지 않게 감싸주는 느낌으로 폴더위 주소를 복사한 후 스프링부트에 붙여넣는다!
: import에서는 gradle과 src과 보이는 상태로 주소를 붙여넣는다!!!
✔️ import를 하고 나니 아래와 같이 빨간 에러가 떳다
위와 같을 경우에는 폴더명(login-profile-back)과 아까 폴더명을 변경해줬듬..
setting.gradle에 있는 이름이 달라서 에러가 뜨므로 해당 이름을 아래와 같이 변경한후
gradle을 리프래쉬 하니 오류가 말끔히 사라졌다!! (gradle리프래시 방법은 폴더 마우수 우클릭
gradle클릭- 리프래쉬 진행)
☑️ 프로트앤드 리액트 수정하기
: 내가 들어가야할 폴더는 큰폴더 안에 폴더 이므로 아래와 같은 경로로 들어간다
✓그리고 나서 모듈을 설치해준다 명령어는 npm i 이다.
(혹 패키지 제이슨에 쉼표가 누락되어 있을 시 설치가 안될 수 있으니 주의!!)
✓설치가 끝나면 백과 프론트를 package.json에서 proxy를 연결해준다!
(포트번호는 백 스프링부트 application.properties에서 확인한다!)
✓ npm i axios 를 설치해준다!!
✓ 그리고 나서 App.js를 봐준다! 그리고 실행을 시킨다. 오류에 어떤 내용을 수정해야 하는지 나와 있으므로 편리하다
수정해야할 사항은 Login.js 와 Register.js 이다!!
(수정사항)
axios.post("http://localhost:9010/api/user/login", //자바컨트롤러에서 상단 @RequestMapping에
// 적힌 api주소와 @PostMapping에 적힌 주소들
new URLSearchParams({
// @RequestParam("username") String username,
// @RequestParam("password") String password 자바컨트롤러에서 받는 변수명을 작성
username : username,
password : password,
}),
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
}
)
//axios로 로그인한 결과 성공시 전달받은 then
.then(response => {
//user정보를 로그인한 정보로 변경
setUser(response.data);
setMessate("로그인 성공!!");
})
.catch(error => {
if(error.response && error.response.status === 401) {
setMessage("아이디 또는 비밀번호가 잘못되었습니다")
} else {
setMessage("로그인에 실패했습니다");
}
});
};
✓ 결과화면(성공화면과 cosole창도 깨끗하다!!)