Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

한바다

build.gradle오류 및 폴더전산연결 본문

카테고리 없음

build.gradle오류 및 폴더전산연결

한바다진화 2024. 8. 13. 16:09

[오류상황]

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에서 확인한다!)

"prosxy":"http://localhost:9010",

✓ 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창도 깨끗하다!!)