Hola buenas noches, he intentado todo, revisado cada comentario en este video y el siguiente, buscado por internet y aún no puedo hacer f...

Josue Alonso

Josue Alonso

Pregunta
studenthace 4 años

Hola buenas noches, he intentado todo, revisado cada comentario en este video y el siguiente, buscado por internet y aún no puedo hacer funcionar la aplicación,

presento las siguientes excepciones:

2021-04-08 23:48:53.330 WARN 5692 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productService': Unsatisfied dependency expressed through field 'productRepository'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productoRepository': Unsatisfied dependency expressed through field 'mapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.platzi.market.persistence.mapper.ProductMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} Field mapper in com.platzi.market.persistence.ProductoRepository required a bean of type 'com.platzi.market.persistence.mapper.ProductMapper' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Consider defining a bean of type 'com.platzi.market.persistence.mapper.ProductMapper' in your configuration.

Esas clases las tengo tal cual están en un repositorio suyo que compartió en un comentario ya que presentan errores algunas clases en este video.

Estoy usando STS

8 respuestas
para escribir tu comentario
    José manuel Sanchez Juarez

    José manuel Sanchez Juarez

    studenthace 2 años

    alguien encontro la solucion a este error

    Nevin Orlando Santana Escoto

    Nevin Orlando Santana Escoto

    studenthace 4 años

    En mi caso fue que en la carpeta presistence.crud.ProductoCrudRepository tenía mal declarada la consulta en el método Optional:

    lo tenía: findByCantidadStockLessThanEstado lo correcto: findByCantidadStockLessThanAndEstado

    Ya al llamarla en ProductoRepository en el método getScarceProducts, lo cambié igual y ya con eso me compiló.

    Saludos!

    Josue Alonso

    Josue Alonso

    studenthace 4 años

    Pude solucionarlo pero no de la forma que yo quería aunque me sirve para poder continuar con el curso: me pasé a intelliJ en vez de usar STS y funciona a la perfección el código, a pesar de ser uno de los frameworks más utilizados STS, nadie brindaba una correcta solución al problema, desde ya quiero agradecer a cesarcalad que me ayudó por telegram.

    Josue Alonso

    Josue Alonso

    studenthace 4 años

    Sigo sin poder encontrar una solución, quiero avanzar con el curso :(

    Josue Alonso

    Josue Alonso

    studenthace 4 años

    si he revisado las clases pero no he encontrado el error

    César Augusto Calad Hernández

    César Augusto Calad Hernández

    studenthace 4 años

    y en la clase ProductoRepository o ProductService o en otras clases en sus atributos, donde estas llamando las clases Mapper, lo estas inyectando(@Autowired)? Tambien puede ser, que en alguna de estas clases le falta los componentes. Por ejemplo

    @Service public class ProductDomainService {}

    Si el error persiste, me podes escribir en telegram @CesaMaster

    Josue Alonso

    Josue Alonso

    studenthace 4 años

    Hola buenos días, gracias por tu respuesta, eso ya lo tengo bien, así que no he podido solucionarlo aún

    César Augusto Calad Hernández

    César Augusto Calad Hernández

    studenthace 4 años

    No he consultado por internet ese error, pero puede ser lo siguiente:

    @Mapper(componentModel = "spring") //No tengas esta anotación public interface ProductDomainMapper {}
    @Autowired //No lo has inyectado private ProductDomainMapper mapper;
    @Mapper(componentModel = "spring", uses = {categoryDomainMapper.class}) //Te falta añadir el parametro usea; Aunque si falta, da una advertencia public interface ProductDomainMapper {}

    Me dices, si lo solucionaste. Saludos!

Curso de Java Spring

Curso de Java Spring

Construye una API REST con Java Spring para gestionar productos en un supermercado. Aprende a mapear objetos, manejar bases de datos con Spring Data, y aplicar principios de desarrollo profesional. Expone y controla servicios usando Swagger y Heroku. Ideal para profundizar en el desarrollo de aplicaciones empresariales robustas y seguras.

Curso de Java Spring
Curso de Java Spring

Curso de Java Spring

Construye una API REST con Java Spring para gestionar productos en un supermercado. Aprende a mapear objetos, manejar bases de datos con Spring Data, y aplicar principios de desarrollo profesional. Expone y controla servicios usando Swagger y Heroku. Ideal para profundizar en el desarrollo de aplicaciones empresariales robustas y seguras.