1
resposta

Problema com method is indefined

Quando tento rodar aparece esse problema na compilação, mas mesmo assim o codigo roda, mas quando faz a requisição no postman ele volta a aparecer.

The method setDataParaEntrega(LocalDate) is undefined for the type Compra
The method setVoucher(Long) is undefined for the type Compra

CompraService ta assim


@Service
public class CompraService {

    private static final Logger LOG = LoggerFactory.getLogger(CompraService.class);

    @Autowired
    private FornecedorClient fornecedorClient;

    @Autowired
    private TransportadorClient transportadorClient;

    @Autowired
    private CompraRepository compraRepository;

    @HystrixCommand(fallbackMethod = "realizaCompraFallback", threadPoolKey = "realizaCompraThreadPool")
    public Compra realizaCompra(CompraDTO compra) {

        final String estado = compra.getEndereço().getEstado();

        LOG.info("buscando informação do fornecedor de {}", estado);
        InfoFornecedorDTO info = fornecedorClient.getInfoPorEstado(compra.getEndereço().getEstado());

        LOG.info("realizando um pedido");
        InfoPedidoDTO pedido = fornecedorClient.realizaPedido(compra.getItens());

        InfoEntregaDTO entregaDTO = new InfoEntregaDTO();
        entregaDTO.setPedidoId(pedido.getId());
        entregaDTO.setDataParaEntrega(LocalDate.now().plusDays(pedido.getTempoDePreparo()));
        entregaDTO.setEnderecoOrigem(info.getEndereço());
        entregaDTO.setEnderecoDestino(compra.getEndereço().toString());
        VoucherDTO voucher = transportadorClient.reservaEntrega(entregaDTO);

        Compra compraSalva = new Compra();
        compraSalva.setPedidoId(pedido.getId());
        compraSalva.setTempoDepreparo(pedido.getTempoDePreparo());
        compraSalva.setEnderecoDestino(compra.getEndereço().toString());
        compraSalva.setDataParaEntrega(voucher.getPrevisaoParaEntrega());
        compraSalva.setVoucher(voucher.getNumero());
        compraRepository.save(compraSalva);

        return compraSalva;
    }

    public Compra realizaCompraFallback(CompraDTO compra) {
        Compra compraFalback = new Compra();
        compraFalback.setEnderecoDestino(compra.getEndereço().toString());
        return compraFalback;
    }

    @HystrixCommand(threadPoolKey = "getByIdThreadPool")
    public Compra getById(Long id) {
        return compraRepository.findById(id).orElse(new Compra());
    }
}

E o TransportadorClient ta assim

@FeignClient("transportador")
public interface TransportadorClient {

    @RequestMapping(path = "/entrega", method = RequestMethod.POST)
    public VoucherDTO reservaEntrega(InfoEntregaDTO pedidoDTO);

}

Resolvido colocando as variaveis no Compra que eu tinha esquecido de colocar e gerendo os Getters e Setters

    private LocalDate DataParaEntrega;

    private Long voucher;
1 resposta

Olá Victor, tudo bem?

Envia o código de Compra.java também, por favor

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software