Ich möchte die Nachrichten in der SQS-Warteschlange abrufen. Ich benutze den Maven zum ersten Mal. Hier sind die Schritte, die ich bisher gemacht habe.Wie verwende ich AWS SDK für Java mit Maven?
1. Erstellt Maven Projekt diesem Befehl:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=aws-try -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Der obige Befehl erstellt ein aws-versuchen Verzeichnis mit src Ordner und pom.xml.
2. Added AWS-SDK-Abhängigkeit in pom.xml:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.78</version>
</dependency>
3. Hinzugefügt wurde die SQSTry.java Datei unter src> main> Java> com> mycompany> app> SQSTry.java
package com.mycompany.app;
import java.util.List;
import java.util.Map.Entry;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClient;
import com.amazonaws.services.sqs.model.CreateQueueRequest;
import com.amazonaws.services.sqs.model.DeleteMessageRequest;
import com.amazonaws.services.sqs.model.DeleteQueueRequest;
import com.amazonaws.services.sqs.model.Message;
import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
import com.amazonaws.services.sqs.model.SendMessageRequest;
public class SQSTry {
public static void main (String args[]) {
System.out.println("SQSTry");
AWSCredentials credentials = null;
try {
credentials = new ProfileCredentialsProvider().getCredentials();
} catch (Exception e) {
throw new AmazonClientException(
"Cannot load the credentials from the credential profiles file. " +
"Please make sure that your credentials file is at the correct " +
"location (~/.aws/credentials), and is in valid format.",
e);
}
AmazonSQS sqs = new AmazonSQSClient(credentials);
Region apNortheast1 = Region.getRegion(Regions.AP_NORTHEAST_1);
sqs.setRegion(apNortheast1);
System.out.println("===========================================");
System.out.println("Getting Started with Amazon SQS");
System.out.println("===========================================\n");
}
}
4. Jetzt Befehl
verpackenDer obige Befehl wurde für die Datei pom.xml im Stammverzeichnis des Verzeichnisses aws-try ausgeführt.
Dies gibt den folgenden Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/AmazonClientException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
at java.lang.Class.getMethod0(Class.java:2866)
at java.lang.Class.getMethod(Class.java:1676)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.AmazonClientException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
Ich habe die Abhängigkeit korrekt hinzugefügt. Wenn Sie die obige SQSTry.java-Datei bemerkt haben, war die AWSCredentials auch ein Paket von Amazon, aber ID gibt keinen Fehler.
Was fehlt mir?
überprüfen Sie dies, http://StackOverflow.com/Questions/12811392/java-ClassnotFounddexception-with-maven-dependency –
@ShivaKumarSS Auch nach dem Hinzufügen des Bereichs mit Compile zu Abhängigkeit, es hat nicht funktioniert. Ich kann einfach nicht verstehen, warum es aws sdk nicht korrekt importiert. –
"mvn package" wird das Hauptprogramm nicht ausführen. Ich sehe, dass die Ausnahme beim Ausführen des Hauptprogramms ausgelöst wird. Was ist der genaue Befehl, den Sie zu verwenden versuchen und was ist Ihre Anforderung? –