Tout
Je suis en train de rencontrer cette erreur dans mon projet lorsque j’ai mis à jour la bibliothèque aws vers la dernière version 1.11.3.
Causé par:
java.lang.NoClassDefFoundError: org/apache/http/conn/SchemePortResolver at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.(ApacheHttpClientFactory.java:40) at com.amazonaws.http.AmazonHttpClient.(AmazonHttpClient.java:97) at com.amazonaws.AmazonWebServiceClient.(AmazonWebServiceClient.java:145) at com.amazonaws.services.s3.AmazonS3Client.(AmazonS3Client.java:393) at com.amazonaws.services.s3.AmazonS3Client.(AmazonS3Client.java:373) at com.amazonaws.services.s3.AmazonS3Client.(AmazonS3Client.java:355) at com.amazonaws.services.s3.AmazonS3Client.(AmazonS3Client.java:339)
dans mon pom.xml
com.amazonaws aws-java-sdk-core 1.11.3 com.amazonaws aws-java-sdk-s3 1.11.3 com.amazonaws aws-java-sdk-kms 1.11.3 org.bouncycastle bcprov-ext-jdk15on 1.54 com.amazonaws aws-encryption-sdk-java 0.0.1-SNAPSHOT
Quelqu’un sait ce que j’ai mal fait?
Merci
J’ai eu un problème similaire avec mon application grails. Dans mon cas, la ClassNotFoundException était lancée à partir d’un script de déploiement. Pour moi, la raison pour laquelle SchemePortResolver n’était pas implicitement résolue était que cela n’était pas nécessaire au moment de la compilation, il était nécessaire à l’exécution. Voici ce que j’ai ajouté à mon BuildConfig.groovy pour résoudre ce problème:
runtime 'org.apache.httpcomponents:httpclient:4.5.2' //Required by BeanstalkDeploy.groovy at runtime
Puisque la question du PO concernait Maven, voici l’équivalent:
org.apache.httpcomponents httpclient 4.5.2 runtime
Si vous ajoutez
org.apache.httpcomponents httpclient 4.5.2
, cela devrait fonctionner correctement car il contient les définitions de classe manquantes.
Une cause commune serait un conflit de dépendance Maven. Dans l’exemple ci-dessous ( pom.xml
affiché dans l’onglet Hiérarchie des dépendances d’Eclipse), le POM inclut explicitement la version httpclient
de httpclient
, ce qui oblige Maven à omettre la v4.5.5 requirejse par aws-java-sdk-core (et donc l’erreur similaire java.lang.NoClassDefFoundError: org / apache / http / conn / DnsResolver à com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory … ):