J'ai une compétence Alexa hébergée dans AWS Lambda qui utilise AsyncHttpClient
pour appeler un service IPv6
de repos sous l'exemple d'URL suivant:Comment appeler un service REST IPv6 sur AWS Lambda
http://[2a12:5375:4151:2300:1353:a632:5f4e:c232]:4711/rest/test
Maintenant, mon problème est , que je reçois toujours l'exception suivante:
ava.util.concurrent.ExecutionException: java.net.ConnectException: Protocol family unavailable
Si je vérifie l'adresse IP qui est affectée au serveur sous-jacent ou l'application ?, je reçois l'adresse suivante (également par exemple):
ip-10-23-56-1.eu-west-1.compute.internal: 10.23.56.1
Donc, je pense, parce que j'utilise un IPv6 alors que le système utilise IPv4, je ne peux pas le faire fonctionner? Je peux appeler mon service REST à partir d'un autre serveur avec succès.
Je suis également en utilisant les propriétés système suivantes:
System.setProperty("java.net.preferIPv6Addresses", "true");
System.setProperty("java.net.preferIPv4Stack", "false");
Y at-il une solution pour fournir un « tunnel » sur l'IPv4 système sous-jacent à l'adresse IPv6 tunnel pour appeler le service REST? Ou y a-t-il une solution plus simple?
Vous ne pouvez pas accéder aux adresses IPv6 à partir d'un seul endroit IPv4 (sauf si vous utilisez certains logiciels de tunneling comme Teredo) – Ferrybig