1
resposta

Exemplo em java com spring

Eu consegui fazer o deploy na aws lambda, a aplicação inicia corretamente, da pra ver isso no log porém tenho esse erro

Caused by: java.lang.ClassCastException: class org.springframework.context.annotation.AnnotationConfigApplicationContext cannot be cast to class org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext

lambda com java17, spring boot 3 e um endpoint

1 resposta

Oi, Edivaldo, tudo bem?

O erro que você está vendo ocorre quando o Spring tenta fazer um cast de AnnotationConfigApplicationContext para AnnotationConfigServletWebServerApplicationContext, que são tipos incompatíveis.

Isso está geralmente associado à criação de uma aplicação web com Spring Boot em um ambiente que não suporta servlets, como o AWS Lambda. O AWS Lambda é projetado para executar funções simples e não suporta diretamente aplicações web baseadas em servlet.

Aqui está um exemplo de como você pode configurar uma função AWS Lambda com Spring Boot:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Application {

    @Bean
    public Function<String, String> function() {
        return value -> "Hello " + value;
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Neste exemplo, a função AWS Lambda é definida como um bean Spring e será automaticamente detectada pelo Spring Cloud Function. A função simplesmente retorna uma saudação para o valor de entrada.

Todavia, vale ressaltar que como não tenho acesso ao cenário completo do projeto outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!