【问题标题】:Unable to upload image to amazon service无法将图像上传到亚马逊服务
【发布时间】:2017-06-28 21:19:08
【问题描述】:

我正在尝试使用以下方法将图像文件上传到亚马逊 s3 服务。但它给出了这样的异常错误。

  1. 线程“Thread-0”java.lang.NoClassDefFoundError 中的异常:org/apache/commons/logging/LogFactory
  2. 原因:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

    私有静态 URL uploadFile(File file) {

    try {
        JSONObject jsonObject = ApiConnector.getBucketDetails();
        JSONObject ob = jsonObject.getJSONObject("result");
        System.out.println("JSon result " + ob.toString());
    
        fileName = String.valueOf(System.currentTimeMillis());
    
    
        BasicAWSCredentials awsCreds = new BasicAWSCredentials(ob.getString("access_key"), ob.getString("secret_key"));
        client = new AmazonS3Client(awsCreds);
        newBucket = new Bucket(ob.getString("bucket_name"));
        PutObjectRequest putObjectRequest = new PutObjectRequest(newBucket.getName(), fileName, file);
        putObjectRequest.withCannedAcl(CannedAccessControlList.PublicRead);
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentLength(file.length());
        putObjectRequest.withMetadata(objectMetadata);
        client.putObject(putObjectRequest);
    
        return client.generatePresignedUrl(ob.getString("bucket_name"), fileName, getDate());
    } catch (JSONException ex) {
        ex.printStackTrace();
        return null;
    }}
    

【问题讨论】:

    标签: java amazon-s3 aws-sdk


    【解决方案1】:

    看起来您的项目缺少公共日志记录的依赖项(可能被其他依赖项之一引用)。您可以尝试在pom.xml 中添加以下内容:

    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>
    

    你可以看到here的版本。

    更新

    如果您的项目不是maven 项目,那么您需要下载commons logging jar 并将其放在lib 目录中。你可以从here下载jar。

    【讨论】:

    猜你喜欢
    • 2012-07-07
    • 2017-08-01
    • 2015-11-05
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    相关资源
    最近更新 更多