Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] Error: this.usuariosService is null

Hola apreciaría mucho su ayuda para encontrar la traza de este error, les comparto el código.

DTO: DatosRegistrarUsuario.java

package com.d2mp.foro.dto.usuarios;
import jakarta.validation.constraints.NotBlank;
public record DatosRegistrarUsuario(
    @NotBlank String nombre, 
    @NotBlank String email, 
    String contrasena) { }

Clase: Usuario.java

@Entity
@Table(name = "usuarios")
@NoArgsConstructor
@AllArgsConstructor
@Getter
@EqualsAndHashCode(of = "id")
@JsonIgnoreProperties(ignoreUnknown = true)
public class Usuario {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nombre;
    private String email;
    private String contrasena;
    @Enumerated(value = EnumType.STRING)
    private Perfil perfil;
    private Boolean activo;
    @OneToMany(mappedBy = "autor", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private List<Topico> topicos;

    public Usuario(DatosRegistrarUsuario datosRegistrarUsuario) {
        this.nombre = datosRegistrarUsuario.nombre();
        this.email = datosRegistrarUsuario.email();
        this.contrasena = datosRegistrarUsuario.contrasena();
        this.perfil = Perfil.ESTUDIANTE;
        this.activo = true;
        this.topicos = new ArrayList<>();
    }

Repository: UsuarioRepository.java

@Repository
public interface UsuarioRepository extends JpaRepository<Usuario, Long> {
    Optional<Usuario> findOptionalByEmail(String email);
} 

Service: UsuariosService.java

@Service
public class UsuariosService {
    @Autowired
    private UsuarioRepository usuarioRepository;

    public boolean existeUsuario(DatosRegistrarUsuario datosRegistrarUsuario){
        return usuarioRepository.findOptionalByEmail(datosRegistrarUsuario.email()).isPresent();
    }
    public void registrarUsuario(DatosRegistrarUsuario datosRegistrarUsuario){
        if(this.existeUsuario(datosRegistrarUsuario))
            System.out.println("El Usuario ya está registrado");
        else usuarioRepository.save(new Usuario(datosRegistrarUsuario));
    }

Controller: controlUsuarios.java

@RestController
@RequestMapping("/usuarios")
public class controlUsuarios {
    @Autowired
    private UsuariosService usuariosService;

    @PostMapping
    private void registrarUsuario(@RequestBody @Valid DatosRegistrarUsuario datosRegistrarUsuario){
     usuariosService.registrarUsuario(datosRegistrarUsuario);
    }

En la linea 9 de controlUsuarios.java usuariosService.registrarUsuario(datosRegistrarUsuario); me esta retornando el error: this.usuariosService is null, entonces no envía los parametros a la clase servicio. Apreciaría mucho su ayuda

1 respuesta
solución!

Hola, Duda resuelta