Résolution des problèmes liés aux transformations Java
Les informations suivantes peuvent vous aider à résoudre les problèmes courants liés à la transformation des applications Java avec Amazon Q Developer.
Pourquoi Amazon Q ne parvient-il pas à charger mon projet ?
Si votre projet ne parvient pas à être chargé, cela peut être dû à l’un des problèmes suivants. Consultez la rubrique correspondant à l’erreur que vous voyez sur Amazon Q.
Rubriques
Réduire la taille des projets
Pour transformer votre code, Amazon Q génère un artefact de projet, qui inclut votre code source, les dépendances du projet et les journaux de compilation. La taille maximale d’un artefact de projet pour une tâche de transformation est de 2 Go. Si vous recevez une erreur concernant la taille de l’artefact du projet, vous devez réduire la taille de votre projet ou essayer de transformer un projet plus petit. Vous pouvez consulter la taille du fichier d’artefact de votre projet dans les journaux de transformation du code. Pour plus d’informations, consultez Comment accéder aux journaux de transformation du code ?.
Configuration des paramètres du proxy dans votre IDE
Pour transformer votre code, Amazon Q charge l’artefact de votre projet dans un compartiment Amazon S3 appartenant au service. Une partie du processus de chargement implique l’utilisation de certificats SSL ou TLS pour établir la communication entre Amazon S3 et votre IDE. Si vous utilisez un serveur proxy, les certificats SSL ou TLS utilisés par votre serveur proxy doivent être fiables, sinon Amazon Q ne pourra pas charger votre projet.
Si vous recevez une erreur liée à votre proxy ou à vos certificats, vous devrez probablement configurer votre IDE ou votre système d’exploitation pour qu’il fasse confiance à vos certificats ou mettre à jour d’autres paramètres de proxy.
Note
Vous pouvez également rencontrer des problèmes non liés aux certificats si vous vous trouvez derrière le serveur proxy ou le pare-feu de votre entreprise. Si vous suivez les procédures ci-dessous pour configurer vos certificats et que vous rencontrez toujours des problèmes, contactez votre administrateur réseau pour vous assurer que vous êtes autorisé à communiquer avec Amazon S3 depuis votre IDE. Pour plus d’informations, consultez Autorisation de l’accès à Amazon S3.
Configuration des certificats dans JetBrains
Pour configurer votre environnement d’exécution Java (JRE) IDE JetBrains afin de faire confiance aux certificats SSL ou TLS utilisés par votre serveur proxy, vous devez importer les certificats SSL ou TLS dans le fichier cacerts du JRE. Le fichier cacerts contient des certificats racines fiables pour des connexions sécurisées telles que HTTPS et SSL, et il fait partie des paramètres de sécurité du JRE. Pour importer un certificat, procédez comme suit.
Note
Nous vous recommandons d’effectuer une sauvegarde du fichier cacerts avant de le modifier, car toute erreur peut entraîner des problèmes de connexion sécurisée.
-
Déterminez le chemin d’accès au fichier
cacertsdans votre JRE. Le chemin du fichiercacertsdans le JRE interne fourni avec votre IDE JetBrains dépend du système d’exploitation et de la version de l’IDE JetBrains que vous utilisez.Vous trouverez ci-dessous des exemples de chemins d’accès au fichier
cacertsdans les systèmes d’exploitation courants. Choisissez votre système d’exploitation pour voir des exemples.Note
<JetBrains Installation Folder>fait référence au répertoire dans lequel les produits JetBrains sont installés. Ce répertoire est généralement choisi au cours du processus d’installation.Le dossier
jbrreprésente le JRE fourni avec les IDE JetBrains, c’est-à-dire une version spécifique du JRE conçue pour être utilisée avec les IDE JetBrains. -
Déterminez le certificat que vous devez importer dans le fichier
cacerts. Le fichier de certificat possède généralement une extension de.cer,.crtou.der. Si vous ne savez pas quels certificats ajouter, contactez votre administrateur réseau. -
Importez le certificat signé dans le magasin de clés
cacerts. Pour cela, utilisez la commandekeytoolJava.-
Ouvrez une invite de commandes et saisissez la commande suivante :
keytool -import -alias <alias> -file <certificate_file> -keystore <path_to_cacerts> -
Pour
<alias>effet, vous pouvez ajouter un nom au certificat que vous importez pour y faire référence ultérieurement. Cette option est facultative. -
Pour
<certificate_file>, spécifiez le chemin d’accès au certificat que vous importez. Il doit s’agir d’un chemin vers le fichier.cer,.crtou.dercontenant le certificat. -
Pour
<path_to_cacerts>, spécifiez le chemin d’accès au fichier du magasin de cléscacertsque vous avez enregistré lors de l’étape 1. Il s’agit du fichier dans lequel vous importez le certificat.
Par exemple, si vous souhaitez importer un certificat nommé
my_certificate.cerdans le magasin de cléscacertsdu JRE intégré dans IntelliJ IDEA sous Windows et que vous souhaitez attribuer l’aliasmyaliasau certificat, la commande peut être la suivante :keytool -import -alias myalias -file my_certificate.cer -keystore "C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\jbr\bin\cacerts" -
-
Au cours du processus d’importation, il vous sera demandé de saisir le mot de passe du magasin de clés. Le mot de passe par défaut pour le magasin de clés
cacertsestchangeit. -
Après avoir exécuté la commande, il vous sera demandé de faire confiance au certificat. Pour confirmer que le certificat est fiable et terminer l’importation, saisissez
yes. -
Vous devrez peut-être également ajouter les certificats à l’IDE lui-même, en plus du JRE. Pour plus d’informations, consultez Certificats de serveur
dans la documentation JetBrains.
Configuration des certificats dans Visual Studio Code
Pour configurer Visual Studio Code de manière à approuver les certificats SSL ou TLS utilisés par votre serveur proxy, veillez à configurer les paramètres de proxy suivants pour votre système d’exploitation.
Configurez les paramètres de proxy suivants pour Visual Studio Code macOS.
Ajout de certificats à votre trousseau macOS
Si cela n’a pas encore été fait, vous devez ajouter les certificats utilisés par votre serveur proxy à votre trousseau macOS. Pour en savoir plus sur l’ajout de certificats à votre trousseau, consultez Ajout de certificats à un trousseau à l’aide de Keychain Access sur Mac
Installation de l’extension Mac CA VSCode
L’extension Mac CA VSCode
Pour installer l’extension :
-
Recherchez
mac-ca-vscodedans le volet des extensions VS Code, puis choisissez Installer. -
Redémarrez VS Code.
Mise à des paramètres du proxy dans VS Code sur macOS
Mettez à jour les paramètres suivants pour vous assurer que VS Code a été configuré correctement pour votre proxy.
-
Ouvrez les paramètres dans VS Code.
-
Saisissez
proxydans la barre de recherche. -
Dans le champ Http : Proxy, ajoutez l’URL de votre proxy.
-
Désélectionnez Http : Proxy Strict SSL.
-
Dans la liste déroulante Http : Support Proxy, choisissez Activé.
-
Dans la barre de recherche des paramètres, saisissez
http.experimental.systemCertificatesV2. Sélectionnez Http › Expérimental : certificats système V2.
Configurez les paramètres de proxy suivants pour Visual Studio Code sous Windows.
Ajout d’un certificat en tant que certificat racine fiable sous Windows
Si vous ne l’avez pas encore fait, ajoutez les certificats utilisés par votre serveur proxy à votre magasin Trusted Root Certification Authorities sous Windows. Pour ajouter un certificat, procédez comme suit :
-
Ouvrez l’outil de recherche ou une fenêtre de commande Exécuter.
-
Saisissez la commande suivante pour ouvrir l’outil Certificate Manager :
certmgr.msc -
Choisissez le magasin Trusted Root Certification Authorities.
-
Cliquez avec le bouton droit sur Certificats, puis choisissez Toutes les tâches, Importer…
-
Suivez les instructions données pour importer votre certificat de proxy.
-
Après avoir importé votre certificat, confirmez qu’il a été ajouté.
Dans le magasin Autorités de certification racine approuvées, double-cliquez sur Certificats. Cliquez avec le bouton droit sur le certificat que vous avez ajouté et sélectionnez Propriétés. Sous Objectifs du certificat, l’option Activer tous les objectifs de ce certificat doit être sélectionnée.
Installation de l’extension Win-CA VSCode
L’extension Win-CA VSCode
Pour installer l’extension :
-
Recherchez
win-cadans le volet des paramètres VS Code. -
Dans la liste déroulante Injecter, choisissez Ajouter.
Mise à jour des paramètres du proxy dans VS Code sous Windows
Mettez à jour les paramètres suivants pour vous assurer que VS Code a été configuré correctement pour votre proxy.
-
Ouvrez les paramètres dans VS Code.
-
Saisissez
proxydans la barre de recherche. -
Dans le champ Http : Proxy, ajoutez l’URL de votre proxy.
-
Désélectionnez Http : Proxy Strict SSL.
-
Dans la liste déroulante Http : Support Proxy, choisissez Activé.
-
Dans la barre de recherche des paramètres, saisissez
http.experimental.systemCertificatesV2. Sélectionnez Http › Expérimental : certificats système V2. -
Redémarrez VS Code.
Autorisation de l’accès à Amazon S3
Au cours d’une transformation, Amazon Q charge votre code dans un compartiment Amazon S3 appartenant au service. Si votre réseau ou votre organisation n’a pas configuré l’accès à Amazon S3, Amazon Q n’est pas en mesure de charger votre projet.
Pour qu’Amazon Q puisse charger votre projet, assurez-vous que la configuration de votre proxy et les autres composants réseau, tels que les politiques de prévention contre la perte de données (DLP), sont configurés de manière à autoriser l’accès à Amazon S3. Vous devrez peut-être également autoriser le compartiment Amazon S3 dans lequel Amazon Q charge votre projet. Pour plus d’informations, consultez URL et ARN des compartiments Amazon S3 à autoriser.
Si vous transformez un projet de grande envergure, les politiques DLP ou d’autres composants réseau peuvent entraîner des retards et empêcher un chargement réussi s’ils ne sont pas configurés de façon à autoriser le compartiment Amazon S3. Si vous choisissez de ne pas autoriser le compartiment, vous devrez peut-être transformer un projet plus petit afin qu’Amazon Q puisse le télécharger.
Pourquoi mes commandes Maven échouent-elles ?
Vous trouverez ci-dessous les problèmes de configuration Maven que vous pourriez rencontrer dans les IDE JetBrains et Visual Studio Code. Si vous résolvez les problèmes et que vous retrouvez toujours des erreurs Maven, il se peut qu’il y ait un problème avec votre projet. Utilisez les informations contenues dans les journaux d’erreurs pour résoudre tout problème lié à votre projet, puis réessayez de le transformer.
Mise à jour de la configuration Maven dans JetBrains
Si une transformation échoue dans JetBrains en raison de problèmes de commande Maven, les journaux d’erreurs apparaissent dans l’onglet Exécuter. Utilisez les informations des journaux pour résoudre le problème. Voici quelques problèmes que vous devrez peut-être résoudre :
-
Assurez-vous que votre chemin d’accès d’origine Maven est défini sur Bundled. Dans la boîte de dialogue Paramètres, développez la section Création, exécution, déploiement. Développez la section Outils de création, puis développez Maven. Dans la liste déroulante du chemin d’accès d’origine Maven, choisissez Bundled.
-
Assurez-vous que l’environnement d’exécution Java (JRE) utilise le JDK de votre projet. Dans la boîte de dialogue Paramètres, développez la section Création, exécution, déploiement. Développez Maven et choisissez Runner. Dans la liste déroulante JRE, choisissez Utiliser le JDK du projet.
-
Vérifiez que Maven est activé. Accédez à Paramètres et choisissez Plug-ins. Recherchez Maven et choisissez le plug-in Maven. Si le bouton Activer s’affiche, choisissez-le pour activer Maven.
Mise à jour de la configuration Maven dans Visual Studio Code
Si une transformation échoue dans VS Code en raison de problèmes de commande Maven, un fichier texte contenant les journaux d’erreurs s’ouvre dans un nouvel onglet. Utilisez les informations des journaux pour résoudre le problème.
Assurez-vous de configurer l’une des options suivantes :
-
Votre projet contient un encapsuleur Maven dans le dossier racine du projet
-
Une version de Maven compatible avec Amazon Q est disponible sur votre
PATH
Pour plus d’informations, consultez Comment ajouter Maven à mon PATH ?.
Comment ajouter Maven à mon PATH ?
Pour transformer votre code dans VS Code sans utiliser d’encapsuleur Maven, vous devez l’installer Maven et l’ajouter à votre variable PATH.
Pour vérifier si Maven a déjà été installé correctement, exécutez mvn -v dans un nouveau terminal du système d’exploitation en dehors de Visual Studio Code. Vous devriez voir une sortie avec votre version de Maven.
Si vous obtenez une sortie dans votre terminal Visual Studio Code, mais pas dans le terminal de votre système d’exploitation, ou si la commande n’est pas trouvée, vous devez ajouter Maven à votre PATH.
Pour ajouter Maven à votre PATH, suivez les instructions de votre machine.
Pourquoi Amazon Q ne parvient-il pas à créer mon code ?
Si la transformation échoue alors qu’Amazon Q crée votre code, il est possible que votre projet ne soit pas configuré correctement pour l’environnement dans lequel Amazon Q génère votre code. Vous devrez peut-être mettre à jour la configuration de votre build ou l’implémentation du code.
Consultez la sortie du journal de création fournie par Amazon Q pour déterminer si vous pouvez apporter des modifications à votre projet. Voici quelques problèmes courants susceptibles d’empêcher Amazon Q de créer votre code.
Suppression des chemins absolus dans le fichier pom.xml
Si votre fichier pom.xml contient un chemin absolu, Amazon Q ne sera pas en mesure de trouver les fichiers appropriés et, par conséquent, il se peut qu’il ne soit pas en mesure de créer votre code.
Voici un exemple de chemin absolu que vous pourriez avoir dans votre fichier pom.xml :
<toolspath> <path>/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/lib/tools.jar</path> </toolspath>
Au lieu d’utiliser un chemin absolu, vous pouvez créer un chemin relatif à l’aide d’un pointeur. Voici un exemple de la façon dont vous pouvez remplacer le chemin absolu précédent par un chemin relatif :
<toolspath> <path>${java.home}/../lib/tools.jar</path> </toolspath>
Suppression des bases de données locales ou externes dans les tests unitaires
Amazon Q exécute tous les tests unitaires de votre projet lors de la génération de votre code. Si un test unitaire appelle une base de données locale ou externe, Amazon Q n’aura pas accès à la base de données, ce qui entraînera l’échec de la création. Pour éviter l’échec de la création, vous devez soit supprimer l’appel de base de données du test unitaire, soit supprimer le test unitaire avant de soumettre la transformation.
Pourquoi ma transformation a-t-elle échoué au bout de 55 minutes ?
Si votre tâche de transformation de code échoue au bout de 55 minutes, le temps de création de votre code dépasse probablement le délai de création. Il y a actuellement une limite de temps de 55 minutes pour créer votre code.
Si votre temps de création local prend 55 minutes ou plus, réduisez le temps de création de votre projet pour transformer votre code. Si votre création locale est plus rapide que la création avec la transformation de code, vérifiez que votre projet ne comporte pas de tâches susceptibles d’échouer ou de prendre plus de temps dans un autre environnement. Envisagez de désactiver les scénarios de test de longue durée. Envisagez également d’utiliser des délais d’expiration pour les tentatives d’accès à des ressources qui pourraient ne pas être disponibles dans l’environnement IDE sécurisé ou sur Internet.
Pourquoi ne puis-je pas télécharger mon code transformé ?
Si vous ne parvenez pas à télécharger votre code une fois la transformation terminée, cela peut être dû à l’un des problèmes suivants. Consultez la rubrique correspondant à l’erreur que vous voyez sur Amazon Q.
Rubriques
Réduire la taille des projets
Une fois la transformation terminée, Amazon Q génère un artefact de sortie contenant une différence avec votre code mis à niveau et un résumé de la transformation contenant des informations sur les modifications apportées. L’artefact de sortie doit être inférieur ou égal à 1 Go pour que l’IDE puisse le télécharger.
Si l’artefact de sortie dépasse la limite, vous ne pourrez pas télécharger le code mis à niveau ni le résumé de la transformation. Essayez de transformer un projet plus petit pour éviter un artefact de sortie volumineux. Si le problème persiste, contactez Support. Pour en savoir plus sur le contact de Support avec Amazon Q, consultezUtilisation d’Amazon Q Developer pour discuter avec Support.
Téléchargement du fichier comparatif du code dans les 30 jours
Le fichier comparatif contenant votre code mis à niveau n’est disponible que pendant 30 jours après la fin de la transformation. Si plus de 30 jours se sont écoulés depuis la fin de la transformation, redémarrez cette dernière pour télécharger le fichier comparatif.
Configuration des paramètres du proxy dans votre IDE
Amazon Q télécharge votre code mis à niveau depuis un compartiment Amazon S3 appartenant au service. Une partie du processus de téléchargement implique l’utilisation de certificats SSL ou TLS pour établir la communication entre Amazon S3 et votre IDE. Si vous utilisez un serveur proxy, les certificats SSL ou TLS utilisés par votre serveur proxy doivent être fiables, sinon Amazon Q ne pourra pas charger votre projet.
Pour télécharger votre code, vous devrez peut-être configurer votre IDE pour qu’il fasse confiance aux certificats ou mettre à jour d’autres paramètres de proxy. Pour en savoir plus sur la mise à jour de vos paramètres de proxy, consultez Configuration des paramètres du proxy dans votre IDE.
Suppression des caractères génériques dans les paramètres du proxy JetBrains
Si vous avez configuré les paramètres de proxy dans votre IDE JetBrains, le message d’erreur suivant peut s’afficher lors du téléchargement de votre code mis à niveau :
software.amazon.awssdk.core.exception.SdkClientException: Unable to execute HTTP request: Dangling meta character '*' near index 0
Cela est probablement dû à la présence d’un caractère générique (*) dans le champ Pas de proxy pour des paramètres de proxy de votre IDE. Le kit SDK Java utilisé par Amazon Q ne prend pas en charge les entrées génériques dans ce champ.
Pour télécharger votre code, supprimez tous les caractères génériques du champ Aucun proxy pour, puis redémarrez votre IDE. Si vous devez spécifier des hôtes qui doivent contourner le proxy, utilisez une expression régulière au lieu d’un caractère générique. Pour mettre à jour les paramètres du proxy dans votre IDE JetBrains, consultez la section Proxy HTTP
Comment accéder aux journaux de transformation du code ?
Accès aux journaux dans JetBrains
Pour en savoir plus sur l’accès aux fichiers journaux JetBrains, consultez Localisation des fichiers journaux IDE
Pour trouver les journaux émis par Amazon Q dans JetBrains, recherchez la chaîne suivante dans les journaux IDE :
software.aws.toolkits.jetbrains.services.codemodernizer
Les journaux de transformation du code commencent par la chaîne précédente. Les journaux générés par Maven sont affichés dans l’onglet Exécuter et comportent la chaîne précédente avant et après l’entrée du journal.
Accès aux journaux dans Visual Studio Code
Pour rechercher les journaux émis par Amazon Q dans VS Code, exécutez les étapes suivantes :
-
Choisissez Afficher dans la barre de navigation supérieure, puis sélectionnez Palette de commandes.
-
Recherchez
Amazon Q: View Logsdans la palette de commandes qui s’affiche. -
Les journaux s’ouvrent dans l’IDE. Pour rechercher dans les fichiers journaux de la
CodeTransformation, utilisezCMD + FouControl + F.
Les connexions liées à la transformation du code dans VS Code sont préfixées par CodeTransformation:. Voici un exemple de journal généré dans VS Code pour une erreur de copie des dépendances Maven :
2024-02-12 11:29:16 [ERROR]: CodeTransformation: Error in running Maven copy-dependencies command mvn = /bin/sh: mvn: command not found
Comment trouver l’ID de ma tâche de transformation ?
Recherche de l’ID de tâche dans JetBrains
Pour trouver un ID de tâche de transformation dans JetBrains, accédez à l’onglet Détails de la transformation dans le Hub de transformation, puis choisissez l’icône Afficher le statut de la tâche (horloge).
Recherche de l’ID de tâche dans Visual Studio Code
Pour rechercher un ID de tâche de transformation dans VS Code, accédez au Hub de transformation, puis choisissez l’icône Afficher le statut de la tâche (horloge).