0

POC 用のサンプル Web アプリケーションを作成しました。このアプリケーションは、Amazon EC2 liberty 17.0.0.2 で実行されています。以下のように get リクエストをサーブレットに送信すると、AWS SQS にメッセージを送信する必要があります。

http://localhost:8080/TestSqsWeb/SqsServlet?message=Hello333

私たちの EC2 は企業 EC2 であり、インターネットに接続するにはプロキシが必要です。そこで、liberty の jvm.options ファイルでプロキシ構成を提供しました。

-Dhttps.nonProxyHosts=169.254.169.254|localhost|127.0.0.1
-Dhttp.nonProxyHosts=169.254.169.254|localhost|127.0.0.1
-Dhttp.proxyHost=proxy.ebiz.abc.com
-Dhttp.proxyPort=80
-Dhttps.proxyHost=proxy.ebiz.abc.com
-Dhttps.proxyPort=80 

以下の例外を与え続けています。

org.apache.http.conn.ConnectTimeoutException: Connect to sqs.us-west-2.amazonaws.com:443 [sqs.us-west-2.amazonaws.com/52.119.168.22] failed: connect timed out

さらに分析した結果、接続中​​にプロキシ システムのプロパティを取得していないことがわかりました。System.getProperty を使用して、コード内のすべてのシステム プロパティを出力しました。システムのプロパティが出力されます。これは、構成が正しいことを意味します。

さらに分析するために、同じプロキシ構成で同じ EC2 の tomcat-8 に同じアプリをデプロイしましたが、動作しています。接続を確立し、メッセージを AWS SQS キューに送信できます。

この分析の後、自由には何らかの問題があると結論付けました。

[サンプル アプリのライブラリ][1]

  [1]: https://i.stack.imgur.com/K2gbj.png

私が見つけた投稿の1つでは、古いバージョンのhttp-clientが原因で発生する可能性がありますが、上記のリンクでわかるように、最新のhttpclient-4.5.2.jarとhttpcore-4.4.4.jarを使用しています。

Liberty 17.0.0.2/17.0.0.3 で同じ問題に遭遇した人はいますか? IBM Java SDK-8 を使用しています。

4

1 に答える 1