Não foi possível executar a solicitação HTTP (DynamoDB, Java SDK)
TL;DR — O Java SDK nunca obteve uma resposta HTTP: a conexão TCP com o endpoint DynamoDB falhou. Em relação ao localhost:8000, isso significa que o DynamoDB Local não está em execução (ou está em outra porta) - e dentro dos contêineres Docker/SAM, localhost é o container, não sua máquina, portanto o emulador está inacessível nesse endereço. Inicie o emulador, corrija o endpoint e use um endereço acessível pelo host a partir de contêineres.
O que significa
com.amazonaws.SdkClientException: Unable to execute HTTP request:
Connect to localhost:8000 [localhost/127.0.0.1] failed: Connection refusedSdkClientException (v1: AmazonClientException) é o wrapper de falha do lado do cliente do SDK – a solicitação morreu antes que DynamoDB a visse. A causa aninhada informa qual etapa da rede falhou: Connection refused (nada escutando), connect timed out (sem rota/firewall) ou UnknownHostException (o nome do host não resolve, geralmente uma região ou endpoint digitado). É o equivalente Java do Could not connect to the endpoint URL do botocore.
Por que isso acontece
- DynamoDB Local não está em execução — ele nunca foi iniciado, travou na inicialização (biblioteca nativa, conflito de porta) ou foi encerrado com seu último terminal.
- Porta ou esquema errado — O padrão local é
8000em vez dehttpsimples; um endpoint dohttps://localhost:8000ou a porta errada se recusa. localhostdentro de um contêiner — o código em execução no Docker/SAM (sam local invoke) disca seu próprio loopback. O emulador no seu host (ou em um contêiner irmão) não está lá.- Contra AWS real: sem caminho de rede — proxy corporativo não configurado no cliente HTTP do SDK, VPC sem uma rota/endpoint para DynamoDB ou uma região com erro de digitação produzindo um nome de host inexistente.
Como corrigir
Confirme que algo está escutando onde você está discando:
curl http://localhost:8000 # DynamoDB Local answers 400 with an AmazonDynamoDBv2 bodySe isso falhar, inicie o emulador (
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jaroudocker run -p 8000:8000 amazon/dynamodb-local).Aponte o cliente para o endpoint certo (SDK v2):
DynamoDbClient client = DynamoDbClient.builder() .endpointOverride(URI.create("http://localhost:8000")) .region(Region.US_EAST_1) .build();Em um contêiner, não disque
localhost— usehost.docker.internal:8000(Docker Desktop), o nome do serviço de composição (http://dynamodb:8000) ou anexe ambos os contêineres à mesma rede Docker. Parasam local, passe um--docker-networkcompartilhado com o contêiner do emulador.Em relação ao AWS real, verifique se o nome do host da região está correto e defina as configurações de proxy do SDK se sua rede exigir uma; de sub-redes privadas, adicione um VPC endpoint de gateway DynamoDB ou uma rota NAT.
Corresponder HTTP vs HTTPS. DynamoDB Local fala HTTP simples na porta 8000 — um endpoint
https://recusa a conexão.
Veja no DynoTable
Conecte-se ao local a partir do DynoTable em vez de depurar clientes Java HTTP cegamente - Configurações → Perfis → Adicionar perfil, defina o endpoint http://localhost:8000, escolha qualquer sequência de região e execute Testar conexão. O DynoTable confirma que o emulador está escutando antes do SDK.
Para o AWS real, o mesmo fluxo de perfil se aplica ao terminal regional. Consulte Conectar ao AWS e Instalar. Uma vez conectado, abra tabelas com ⌘K. Solicitações de protótipo no Query Builder após a confirmação da conectividade.
Fontes
- Tratamento de erros no SDK AWS para Java 2.x (verificado em 13/07/2026)
- Implantando DynamoDB localmente (verificado em 13/07/2026)
Erros relacionados
- Não foi possível conectar ao endpoint URL (boto3) — o gêmeo Python.
- Não foi possível conectar ao DynamoDB Local (ECONNREFUSED) — o gêmeo Node.js.
- DynamoDB Porta local 8000 em uso
- Aprenda: Executando DynamoDB Local · Conectar ao Local e LocalStack
Referências
- Tratamento de erros no AWS SDK para Java 2.x — Guia do desenvolvedor (
SdkClientException= um problema do lado do cliente, por exemplo, nenhuma conexão de rede disponível) - Implantando DynamoDB localmente em seu computador - AWS DynamoDB Developer Guide (porta padrão 8000, comando de inicialização, exemplos de Docker)
- Notas de uso local do DynamoDB - AWS DynamoDB Developer Guide (definindo o endpoint local
http://localhost:8000) docker run --add-host— referência Docker CLI (host.docker.internal/host-gatewaypara conexões contêiner-host)
Última verificação em 13/07/2026 em relação à documentação oficial do AWS vinculada acima.