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

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

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

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Java

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

861閲覧

JAVAでAmazonMWSに接続できない。

teranaomasa

総合スコア14

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Java

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/03/02 01:36

編集2022/01/12 10:55

### 前提・実現したいこと

お世話になっております。
JAVA1.8でAmazonAPI連携を行っておりますが、自社の環境で接続するときは
正常にいくのですが、お客様の環境で実施するとエラーになってしまいます。
恐れ入りますが、何かしら調査方法などご教示いただく事可能でしょうか?
申し訳ございません。不足している情報ありましたら、ご指摘いただけると
助かります。

発生している問題・エラーメッセージ

エラーメッセージ/ログ  14:45:37.126 [main] ERROR com.amazonaws.mws.MarketplaceWebServiceClient - Caught MarketplaceWebServiceException com.amazonaws.mws.MarketplaceWebServiceException: Internal Error at com.amazonaws.mws.MarketplaceWebServiceClient.invoke(MarketplaceWebServiceClient.java:2248) [MaWSJavaClientLibrary-1.1.jar:?] at com.amazonaws.mws.MarketplaceWebServiceClient.invoke(MarketplaceWebServiceClient.java:2019) [MaWSJavaClientLibrary-1.1.jar:?] at com.amazonaws.mws.MarketplaceWebServiceClient.manageReportSchedule(MarketplaceWebServiceClient.java:1651) [MaWSJavaClientLibrary-1.1.jar:?] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_102] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[?:1.8.0_102] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_102] at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_102] at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668) ~[?:1.8.0_102] at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:524) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:403) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) ~[org.apache.httpcomponents.httpclient_4.3.5.jar:4.3.5] at com.amazonaws.mws.MarketplaceWebServiceClient.invoke(MarketplaceWebServiceClient.java:2097) ~[MaWSJavaClientLibrary-1.1.jar:?] ... 9 more

該当のソースコード

  /** * [概 要]:リクエスト生成(ManageReportSchedule)<br> * [説 明]:<br> * [備 考]: * @param accessKeyId AWSアクセスキーID * @param secretAccessKey 秘密キー * @param sellerDevAuthToken sellerDevAuthToken * @param appName appName * @param appVersion appVersion * @param merchantId 出品者ID * @param reportType レポートタイプ * @param schedule * @param ScheduledDate * @param maketPlaceIds * @return */ public static Object call(String accessKeyId, String secretAccessKey, String sellerDevAuthToken, String appName, String appVersion, String merchantId, String reportType, String schedule, XMLGregorianCalendar ScheduledDate, String... maketPlaceIds ) { MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig(); //@@@@ config.setProxyHost("http://10.10.1.3"); config.setServiceURL("https://mws.amazonservices.jp"); MarketplaceWebService service = new MarketplaceWebServiceClient( accessKeyId, secretAccessKey, appName, appVersion, config); ManageReportScheduleRequest request = new ManageReportScheduleRequest(); request.setMerchant(merchantId); if ((!"".equals(sellerDevAuthToken)) &&(sellerDevAuthToken != null) &&(!"nodata".equals(sellerDevAuthToken))){ request.setMWSAuthToken(sellerDevAuthToken); } request.setReportType(reportType); request.setSchedule(schedule); if (ScheduledDate!=null) { request.setScheduleDate(ScheduledDate); } return invokeManageReportSchedule(service, request); } /** * [概 要]:レスポンス取得(ManageReportSchedule)<br> * [説 明]:<br> * [備 考]: * @param service * @param request * @return */ public static Object invokeManageReportSchedule(MarketplaceWebService service, ManageReportScheduleRequest request) { try { ManageReportScheduleResponse response = service.manageReportSchedule(request); ←★★★ここでエラーメッセージになってしまいます。★★★ SuperLogger.info ("ManageReportSchedule Action Response"); SuperLogger.info ("============================================================================="); SuperLogger.info(" ManageReportScheduleResponse"); if (response.isSetManageReportScheduleResult()) { SuperLogger.info(" ManageReportScheduleResult"); ManageReportScheduleResult manageReportScheduleResult = response.getManageReportScheduleResult(); if (manageReportScheduleResult.isSetCount()) { SuperLogger.info(" Count"); SuperLogger.info(" " + manageReportScheduleResult.getCount()); } java.util.List<ReportSchedule> reportScheduleList = manageReportScheduleResult.getReportScheduleList(); for (ReportSchedule reportSchedule : reportScheduleList) { SuperLogger.info(" ReportSchedule"); if (reportSchedule.isSetReportType()) { SuperLogger.info(" ReportType"); SuperLogger.info(" " + reportSchedule.getReportType()); } if (reportSchedule.isSetSchedule()) { SuperLogger.info(" Schedule"); SuperLogger.info(" " + reportSchedule.getSchedule()); } if (reportSchedule.isSetScheduledDate()) { SuperLogger.info(" ScheduledDate"); SuperLogger.info(" " + reportSchedule.getScheduledDate()); } } } if (response.isSetResponseMetadata()) { SuperLogger.info(" ResponseMetadata"); ResponseMetadata responseMetadata = response.getResponseMetadata(); if (responseMetadata.isSetRequestId()) { SuperLogger.info(" RequestId"); SuperLogger.info(" " + responseMetadata.getRequestId()); } } SuperLogger.info(response.getResponseHeaderMetadata()); return response; } catch (MarketplaceWebServiceException ex) { SuperLogger.info("Caught Exception: " + ex.getMessage()); SuperLogger.info("Response Status Code: " + ex.getStatusCode()); SuperLogger.info("Error Code: " + ex.getErrorCode()); SuperLogger.info("Error Type: " + ex.getErrorType()); SuperLogger.info("Request ID: " + ex.getRequestId()); SuperLogger.info("XML: " + ex.getXML()); SuperLogger.info("ResponseHeaderMetadata: " + ex.getResponseHeaderMetadata()); return ex; } }

試したこと

chromeやIEなどのブラウザ経由でAMAZONのURL「https://mws.amazonservices.jp」
を閲覧すると、XML形式でサイト表示はすることができます。 

補足情報(FW/ツールのバージョンなど)

 エラーになる環境 :Windowsserver2016 PROXY設定あり

 接続可能な環境: Windows10 PROXY設定なし

#JAVAバージョン
1.8

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

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

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

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

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

hoshi-takanori

2020/03/02 01:45

エラーメッセージには Connection timed out とあるので、コネクションがタイムアウトしてることしかわかりません。(しかも freamwork…。)接続してる部分のソースコードとか、自社とお客様がそれぞれどんな環境かといった情報が不足しています。
teranaomasa

2020/03/04 02:36 編集

大変失礼いたしました。 本文に環境の追記、 ソースコードを追記しました。
退会済みユーザー

退会済みユーザー

2020/03/04 02:15

コードは質問を編集してマークダウンで、ログも同様にマークダウンで
teranaomasa

2020/03/04 04:39

申し訳ございません!修正しました!
teranaomasa

2020/03/04 10:36

情報のご提供ありがとうございます。 本文に編集し、やってみましたがダメでした。 このほかにも config.setProxyHost("10.10.1.3"); config.setProxyPort("80"); やったのですが、結果変わらずです。。
MAKOTO_MOBY

2020/03/05 02:19

起動時のJVMのオプションに、-Djavax.net.debug=all を指定すれば、接続のプロセスを詳細に見れると思います。
teranaomasa

2020/03/05 10:36 編集

アドバイスありがとうございます! 早速試してみて下記のようなログが出てきました。 下記は上手くいかない顧客環境で出たログです。 正常に行く場合のログと比較しようと思います。 ``` trigger seeding of SecureRandom done seeding SecureRandom POST mws.amazonservices.jp / AWSAccessKeyId=ReportType=_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_&Schedule=_30_MINUTES_&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2020-03-05T10%3A12%3A17.558Z&Version=2009-01-01 Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 main, setSoTimeout(50000) called main, called close() main, called closeInternal(true) main, called closeSocket(true) main, called close() main, called closeInternal(true) 19:12:39.117 [main] ERROR com.amazonaws.mws.MarketplaceWebServiceClient - Caught IOException exception ```
teranaomasa

2020/03/12 06:48 編集

すいません!遅くなりました、 下記正常終了の場合です。。 trigger seeding of SecureRandom done seeding SecureRandom POST mws.amazonservices.jp / AWSAccessKeyId=&Action=ManageReportSchedule&MWSAuthToken=&Merchant=&ReportType=_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_&Schedule=_30_MINUTES_&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2020-03-12T06%3A35%3A53.071Z&Version=2009-01-01 main, setSoTimeout(50000) called Allow unsafe renegotiation: false Allow legacy hello messages: true Is initial handshake: true Is secure renegotiation: false Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for TLSv1.1 %% No cached client session update handshake state: client_hello[1] upcoming handshake states: server_hello[2] *** ClientHello, TLSv1.2 RandomCookie: random_bytes = {DA 0A B6 41 BB B3 A3 A8 48 9C 7E 92 83 5B 41 08 6E 7E 99 63 C7 DA 9F DC CC 51 8C D8 8A 54 61 7E} Session ID: {}
hoshi-takanori

2020/03/12 17:10

お客さんのところの TLS が古いとか? でも Java 8 なら TLS 1.2 対応のはずだけど…。
退会済みユーザー

退会済みユーザー

2020/03/19 03:26

@hoshi-takanori まあうちも見落としてたんだけど System.setProperty("java.net.useSystemProxies", "true"); でシステム(OS)のプロキシを利用すると設定ができるぽ
teranaomasa

2020/05/12 03:26

回答ありがとうございます!上記試してみます!
teranaomasa

2020/10/08 08:13

大変遅くなり申し訳ございません! >System.setProperty("java.net.useSystemProxies", "true"); こちら試しましたが、結果同じでした。 JAVAでPROXYの設定をしても反映されていないようで、何とも行き詰っております。 権限の問題もあるのでしょうか??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問