Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SchemeSocketFactory

I am tring to send mail by AWSCredentials but getting an exception

java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SchemeSocketFactory

I have added these jar:

  • aws-java-sdk-1.3.11.jar
  • aws-java-sdk-1.3.11-javadoc.jar
  • aws-java-sdk-1.3.11-sources.jar
  • aws-java-sdk-flow-build-tools-1.3.11.jar
  • commons-logging.jar
  • httpclient-4.0-alpha4.jar
  • httpcore-4.0-alpha6.jar
  • log4j-1.2.13.jar
  • mail.jar

My java code is -

 import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient;
import com.amazonaws.services.simpleemail.model.*;
import java.util.LinkedList;

public class SESExample {
public static final String ACCESS_KEY = "My Access";
public static final String SECRET_KEY = "My Secret";

public static void main(String args[]) {
    String sender = "[email protected]"; // should be verified email

    LinkedList<String> recipients = new LinkedList<String>();
    recipients.add("[email protected]"); // again a verified email, if you are in sandbox

    SendMail(sender, recipients, "Hi", "Hi how are u?");
}

public static void SendMail(String sender, LinkedList<String> recipients, String subject, String body) {
    Destination destination = new Destination(recipients);

    Content subjectContent = new Content(subject);
    Content bodyContent = new Content(body);
    Body msgBody = new Body(bodyContent);
    Message msg = new Message(subjectContent, msgBody);

    SendEmailRequest request = new SendEmailRequest(sender, destination, msg);

    AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
    AmazonSimpleEmailServiceClient sesClient = new AmazonSimpleEmailServiceClient(credentials);
    SendEmailResult result = sesClient.sendEmail(request);

    System.out.println(result);
}

}

I am also trying to search this jar but not getting. Am I using wrong jar not sure. can any one tell me what is the problem?

I am

like image 347
Khoyendra Pande Avatar asked Jun 22 '12 06:06

Khoyendra Pande


2 Answers

From the javadocs, the SchemeSocketFactory class is only available since version 4.1. So this might have something to do with the fact that you are using the 4.0 alpha jars. Try upgrading your http-client library to 4.1 or higher.

like image 131
Jeshurun Avatar answered Nov 10 '22 04:11

Jeshurun


From the javadoc, it seems that the org/apache/http/conn/scheme/SchemeSocketFactory class exists since the 4.1 version.

So, try to upgrade httpclient jar to at least 4.1 version.

like image 20
ndeverge Avatar answered Nov 10 '22 05:11

ndeverge