Erro Java Spring boot "Could not send request" -- postman

fiz uma Api do Spring boot em Java mas quando rodo a aplicação, é iniciado na porta 8090,mas quando envio no postman ou no Insomnia aparece o erro “Could not send request” e “Couldn’t connect to server”
Respectivamente

LINK DO MEU GITHUB:GitHub - Gustavopomp/TestesUnitarios

Você não configurou nenhuma porta custom no application.properties, a porta padrão é 8080.

Sua classe principal, a que contem o método main, deve ficar no pacote raiz, todas as outras classes precisam estar hierarquicamente abaixo dela para que a anotação @ComponentScan contida no @SpringBootApplication funcione e consiga gerenciar todos os beans configurados, ou, você pode configurar manualmente um @ComponentScan fornecendo todos os pacotes que precisam ser varridos pelo framework para gestão dos beans.

1 curtida

Olá…tudo bem eu arrumei esse problema mas agora esta dando um erro:
“required a bean of type ‘gusystem.api.service.service.UserService’ that could not be found”

LINK DO MEU GITHUB: GitHub - Gustavopomp/TestesUnitarios

O erro diz que não encontrou um bean do tipo UserService, justamente porquê você não explicitou que sua implementação é um bean válido para o spring!

Anote a sua classe UserServiceImpl com @Service.

Prometo que essa é a ultima kkk
Com o config eu salvo dois usuários no repositorio,com o debug o service busca os atributos mas na hora do return volta nulo não sei o porque.

Precisaria entender como você está salvando os usuários e a forma de como está tentando buscá-los para ter uma ideia do que pode estar ocorrendo…

Eu uso o config para salvar os usuários no repositório desse jeito:

@Bean
public void StartDB() {
User u1 = new User(null, “gustavo”, “gustavoferrazpompeogmail.com”, “123”);
User u2 = new User(null, “luiz”, “luizgmail.com”, “321”);

	repository.saveAll(List.of(u1,u2));
}

O config é ativado e salvo no repositorio,com o service eu criei um metodo FindById e salvei desse jeito:

Override
public User FindById(Integer id) {
Optional obj = repository.findById(id);
return obj.get();
}

com o Debug,eu percebi que o obj recebe as informações de acordo com o config,mas na hora do retorno volta nulo:

GetMapping(value = “/{id}”)
public ResponseEntity findById(PathVariable Integer id) {
return ResponseEntity.ok().body(service.FindById(id));
}

Testei seu código aqui e aparentemente está funcionando normalmente, acredito que talvez você esteja fazendo a requisição de forma incorreta, por isso está recebendo nulo como resposta!

Log da aplicação inicializando e fazendo os 2 inserts no H2.

Hibernate: 
    insert 
    into
        user
        (id, email, name, password) 
    values
        (null, ?, ?, ?)
Hibernate: 
    insert 
    into
        user
        (id, email, name, password) 
    values
        (null, ?, ?, ?)
2023-11-09 12:01:45.615  WARN 30677 --- [           main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2023-11-09 12:01:45.760  INFO 30677 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8090 (http) with context path ''
2023-11-09 12:01:45.765  INFO 30677 --- [           main] gusystem.api.GuApiApplication            : Started GuApiApplication in 1.834 seconds (JVM running for 2.132)
2023-11-09 12:03:45.338  INFO 30677 --- [nio-8090-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-11-09 12:03:45.338  INFO 30677 --- [nio-8090-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2023-11-09 12:03:45.340  INFO 30677 --- [nio-8090-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 2 ms

Request sendo feita para recuperar os 2 registros cadastrados anteriormente:

$ curl -v -X GET "http://localhost:8090/user/1"
*   Trying 127.0.0.1:8090...
* Connected to localhost (127.0.0.1) port 8090 (#0)
> GET /user/1 HTTP/1.1
> Host: localhost:8090
> User-Agent: curl/8.1.2
> Accept: */*
> 
< HTTP/1.1 200 
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Thu, 09 Nov 2023 15:03:45 GMT
< 
* Connection #0 to host localhost left intact
{"id":1,"name":"gustavo","email":"gustavoferrazpompeo@gmail.com","password":"123"}%                                                                                                                                                                                             



$ curl -v -X GET "http://localhost:8090/user/2"
*   Trying 127.0.0.1:8090...
* Connected to localhost (127.0.0.1) port 8090 (#0)
> GET /user/2 HTTP/1.1
> Host: localhost:8090
> User-Agent: curl/8.1.2
> Accept: */*
> 
< HTTP/1.1 200 
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Thu, 09 Nov 2023 15:03:51 GMT
< 
* Connection #0 to host localhost left intact
{"id":2,"name":"luiz","email":"luiz@gmail.com","password":"321"}%  

Em ambas requests buscando pelos Ids 1 e 2 obtive a resposta normalmente!