質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

2281閲覧

AmazonS3ClientBuilderによるクライアント生成でエラー

jiro-sima

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/07/03 12:32

編集2019/07/04 03:33

画像ファイルをAmazonS3にアップロードしたいのですがクライアント生成の段階でエラーが発生します

error

1HTTPステータス 500 - Internal Server Error 2Type Exception Report 3 4メッセージ サーブレットの実行により例外を投げました 5 6説明 The server encountered an unexpected condition that prevented it from fulfilling the request. 7例外 8 9javax.servlet.ServletException: サーブレットの実行により例外を投げました 10 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 11原因 12 13java.lang.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V 14 com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.<init>(SdkTLSSocketFactory.java:58) 15 com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.getPreferredSocketFactory(ApacheConnectionManagerFactory.java:90) 16 com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:63) 17 com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:56) 18 com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:50) 19 com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:38) 20 com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:324) 21 com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:308) 22 com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:229) 23 com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:215) 24 com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:682) 25 com.amazonaws.services.s3.AmazonS3Builder$1.apply(AmazonS3Builder.java:35) 26 com.amazonaws.services.s3.AmazonS3Builder$1.apply(AmazonS3Builder.java:32) 27 com.amazonaws.services.s3.AmazonS3ClientBuilder.build(AmazonS3ClientBuilder.java:64) 28 com.amazonaws.services.s3.AmazonS3ClientBuilder.build(AmazonS3ClientBuilder.java:28) 29 com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46) 30 amazonS3.S3Access.upload(S3Access.java:29) 31 servlet.Upload.doPost(Upload.java:69) 32 javax.servlet.http.HttpServlet.service(HttpServlet.java:660) 33 javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 34 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

java

1import java.io.InputStream; 2 3import com.amazonaws.SdkClientException; 4import com.amazonaws.auth.AWSStaticCredentialsProvider; 5import com.amazonaws.auth.BasicAWSCredentials; 6import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; 7import com.amazonaws.services.s3.AmazonS3; 8import com.amazonaws.services.s3.AmazonS3ClientBuilder; 9import com.amazonaws.services.s3.model.ObjectMetadata; 10 11public class S3Access { 12 public void upload(InputStream is, String title, String fileName) { 13 String region = "us-west-2"; //リージョン,米国西部(オレゴン) 14 String bucketName = "バケット名"; 15 String endpointUrl = "apigateway.us-west-2.amazonaws.com"; 16 String accessKey = "アクセスキー"; 17 String secretKey = "シークレットキー"; 18 String objectKey = title; 19 try { 20 //エンドポイント設定 21 EndpointConfiguration endpoint = new EndpointConfiguration(endpointUrl, region); 22 23 AmazonS3 client = AmazonS3ClientBuilder 24 .standard() 25 .withCredentials (new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey))) 26 .withEndpointConfiguration(endpoint) 27 .build(); 28 ObjectMetadata metadata = new ObjectMetadata(); 29 metadata.setContentType("image/jpeg"); 30 metadata.addUserMetadata("キー", "値"); 31 client.putObject(bucketName, "キー", is, metadata); 32 } catch(SdkClientException e) { 33 e.printStackTrace(); 34 } 35 } 36}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2019/07/04 02:45

エラーというのは, コンパイルエラーでしょうか. エラー文の中に行番号やどのクラスが無いのか等の情報が入っていると思います. エラーの文を追記頂けますか.
jiro-sima

2019/07/04 03:35

回答ありがとうございます 最初のエラーに関しては表示されたクラスにPathを通すことで解決しました しかし新しいエラーがやはりクライアント生成で発生したので更新しました
guest

回答1

0

NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory #938

そのものズバリではありませんが, クラスパス関係で問題があったケースのようです.
クラスパスを操作されたようですので, 古いパッケージが読み込まれていないか等を確認されては如何でしょうか.

投稿2019/07/04 03:51

jimbe

総合スコア12659

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jiro-sima

2019/07/04 06:36

リンクありがとうございます アップロードに際して相当量のjarを通したのでそこでクラスの重複やバージョン齟齬が発生した可能性がありそうですね、調べてみます 或いはmavenの導入など考えた方がいいかもしれません いずれにしろ進展があったら報告します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問