2016-05-22 4 views
7

Tuttijava.lang.NoClassDefFoundError: org/apache/http/conn/SchemePortResolver con AmazonHttpClient

Sono in esecuzione in questo errore nel mio progetto, quando ho aggiornato aws libreria per l'ultimo 1.11.3.

causati da:

java.lang.NoClassDefFoundError: org/apache/http/conn/SchemePortResolver 
at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.<init>(ApacheHttpClientFactory.java:40) 
at com.amazonaws.http.AmazonHttpClient.<clinit>(AmazonHttpClient.java:97) 
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:145) 
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:393) 
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:373) 
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:355) 
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:339) 

nel mio pom.xml

<dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-core</artifactId> 
     <version>1.11.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-s3</artifactId> 
     <version>1.11.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-java-sdk-kms</artifactId> 
     <version>1.11.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bouncycastle</groupId> 
      <artifactId>bcprov-ext-jdk15on</artifactId> 
     <version>1.54</version> 
    </dependency> 
    <dependency> 
     <groupId>com.amazonaws</groupId> 
     <artifactId>aws-encryption-sdk-java</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

Qualcuno sa che cosa ho fatto di sbagliato?

grazie

risposta

1

Se si aggiunge,

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.5.2</version> 
</dependency> 

, dovrebbe funzionare bene in quanto contiene le definizioni di classi mancanti.

+1

Benvenuti a StackOverflow. Oltre a includere il codice che funzionerà, ti preghiamo di includere del testo sul motivo per cui funziona. – buczek

+0

stesso errore qui cercando di aggiornare il mio sdk a 1.11.15 per il pacchetto spark-redshift ma ottenendo lo stesso errore anche. l'aggiunta del dep di httpclient a pom non ha aiutato. Qualche ulteriore fortuna con questo? – horatio1701d

10

Ho avuto un problema simile con la mia applicazione Grails. Nel mio caso la ClassNotFoundException veniva lanciata da uno script di distribuzione. Per me il motivo per cui SchemePortResolver non è stato risolto implicitamente era perché non era necessario in fase di compilazione, era necessario in fase di runtime. Ecco quello che ho aggiunto alla mia BuildConfig.groovy per risolvere il problema:

runtime 'org.apache.httpcomponents:httpclient:4.5.2' //Required by BeanstalkDeploy.groovy at runtime 

Dal domanda del PO è stato per Maven, ecco l'equivalente includono:

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.5.2</version> 
    <scope>runtime</scope> 
</dependency> 
Problemi correlati