弹性Beanstalk客户端

6

我试图开发一个弹性Beanstalk客户端接口,通过它连接到我的Amazon账户弹性Beanstalk。我使用了脚本文件credentials.Csl中的账户凭证。我从Google Chrome登录了我的账户,但是我一直遇到错误。以下是我的代码。

package PFE;


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.elasticbeanstalk.AWSElasticBeanstalk;
import com.amazonaws.services.elasticbeanstalk.AWSElasticBeanstalkClient;
import com.amazonaws.services.elasticbeanstalk.model.CheckDNSAvailabilityResult;

public class Sample {

    static AWSElasticBeanstalk      eb;

    private static void init()throws Exception{


 /*
  * The ProfileCredentialsProvider will return your [default]
  * credential profile by reading from the credentials file located at
  * (~/.aws/credentials).
  */
    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);
    }

    eb = new AWSElasticBeanstalkClient(credentials);
    Region usWest2 = Region.getRegion(Regions.US_WEST_2);
    eb.setRegion(usWest2);
}

public static void main(String[] args) throws Exception {

    init();    
    try {            
        CheckDNSAvailabilityResult c= eb.checkDNSAvailability(null);

        System.out.println("You have access to " + c.getAvailable() +
                           " Availability Zones.")

        eb.createStorageLocation();

    } catch (AmazonServiceException ase) {
        System.out.println("Caught Exception: " + ase.getMessage());
        System.out.println("Reponse Status Code: " + ase.getStatusCode());
        System.out.println("Error Code: " + ase.getErrorCode());
       System.out.println("Request ID: " + ase.getRequestId());
    }                  
}

}

以下是运行我的项目时出现的错误:
 Exception in thread "main" java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory at com.amazonaws.auth.profile.ProfilesConfigFile.<clinit>(ProfilesConfigFile.java:62) at com.amazonaws.auth.profile.ProfileCredentialsProvider.getCredentials(ProfileCredentialsProvider.java:106)
at PFE.Sample.init(Sample.java:29)
at PFE.Sample.main(Sample.java:47)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

我认为问题出在org.apache.commons.logging.LogFactory库上,所以我下载了它并将其添加到我的引用库中,但我仍然遇到相同的错误。
3个回答

1
我在尝试创建SQS示例时遇到了相同的错误...我的解决方案是:不要将AWS SDK for Java添加为外部jar。

Don't

但作为一个库。

enter image description here


1

NetBeans IDE使用说明:

  1. this页面下载“Java SDK”。

  2. 将存档中的所有文件提取到例如 /aws-java-sdk-1.9.22 文件夹中。

  3. 复制以下文件到您的项目中:

    • /aws-java-sdk-1.9.22/lib/aws-java-sdk-1.9.22.jar

    • 文件夹 /aws-java-sdk-1.9.22/third-party/ 中的所有 *.jar 文件。

  4. 现在,只需在NetBeans IDE中将所有 *.jar 文件添加到您的项目中即可。

  5. 完成!


0
问题在于还有其他缺失的库,所以我安装了适用于我的Eclipse Kepler的AWS工具包,其中包含所有必要的库。 http://aws.amazon.com/fr/eclipse/..下载链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接