- - PR -
URL openConnection()で止まってしまう。
1|2|3
次のページへ»
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-07 02:22
よろしくお願いいたします。
今、ECサイトを開発中でクレジットの決済を代行するところにクレジットカード 情報を送信する処理を作成しています。そことの通信にはSSLを利用します。 以下のようにコネクションを作成して、決済代行システムのサーバーにデータをPOST するようにしています。 URL u = new URL("https://IP Address/xxx/xxx?xxx=xxx"); HttpURLConnection hCon = (HttpURLConnection)u.openConnection(); 以下にSSL認証処理 開発環境では、Windows上でTomcatを動かしてテストしています。また、Fedora Core1 のマシンもありますので、そちらでもTomcatを動かしてテストしています。JDK1.4です。 上記の開発環境では、WinとLinuxどちらでもクレジット決済サーバーと接続して、 問題なく動作しています。 ところが、運用環境のFreeBSD4.9&Tomcat5のマシンにインストールしてテストしたところ HttpURLConnection hCon = (HttpURLConnection)u.openConnection(); のところで止まってしまい、そこから先に進んでくれません。別にエラーが出るわけでもなくずっと止まったままなのです。 全く原因が分からず困っています。原因すら見当が付かないため、何をどうしたらよいのか分かりません。 考えられる原因について、よろしければ教えていただけませんでしょうか。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2004-10-07 13:08
これはタイムアウト待ちということでしょうか? 仮にそうだと仮定して、運用環境からクレジット決済代行サイトまでは ちゃんとHTTPSでパケットが通るんでしょうか? ネットワーク周りの設定をまず検証してみたらいかがでしょう。 | ||||||||
|
投稿日時: 2004-10-07 13:44
おばけさん、ありがとうございます。 サーバー環境の方はあまり得意な方ではありませんので、どう設定する必要があるのか もよく分からないのですが。 運用サーバーからクレジット代行サーバーにPINGをうってみましたところ、ちゃんと PINGは通っていました。 HTTPsの場合は、PINGとはまた違うのでしょうか。 | ||||||||
|
投稿日時: 2004-10-07 14:32
lynx, wget, curl などを使用して、きちんとアクセス対象の
HTTPサーバ(の443ポート)にアクセス出来る事を確認した方が良いかと思います。 | ||||||||
|
投稿日時: 2004-10-07 14:39
でくのぼうさん、ありがとうございます。 教えていただいたツールで試してみたいと思います。 | ||||||||
|
投稿日時: 2004-10-07 15:33
HTTPの場合はTelnetで80番(や8080番など)にアクセスしてテストしますが、 HTTPSの場合は上記のようなツールを使うしかないのでしょうか? どなたかコマンドラインベースのツールなどご存知ではないでしょうか? 便乗質問ですみません。 | ||||||||
|
投稿日時: 2004-10-07 18:50
PINGとはICMPというプロトコルを使います。 これに対し、HTTPSはTCPというプロトコルを使います。 わかりやすく言うと、ICMPにはポートという概念はなく、OSが受け取るものですが、HTTPSにはポートという概念があり、アプリケーションが受け取るものです。 よって、途中のネットワーク機器でフィルタリング(企業レベルだとICMPは通すことが多い)されていたり、アプリケーションが上がっていないような場合には、PINGは成功するがHTTPSには失敗する、ということが起こります。
今回のようにフィルタがかかっていないかどうか、相手がListenしているかどうかをチェックするぐらいでしたらHTTPと同じくTelnetで443番にアクセスでOKだと思いますよ。HTTPの場合と同じく、入力ができるような状態になればTCPセッションは張れています。 また、wgetもcurlもコマンドラインツールなので、自分のマシンであればパスの通っているところに置けばtelnetと同じ感覚で使えると思います。 客先で使う、というのにはちょっと向きませんが。。。 [ メッセージ編集済み 編集者: komey 編集日時 2004-10-08 14:48 ] | ||||||||
|
投稿日時: 2004-10-08 01:26
komeyさん、ありがとうございます。 さっそくtelnetで試してみました。そうしましたところ、相手サーバーの443ポートに 接続できました。 ということは、こちらの運用サーバーからクレジット決済代行サーバーに、パケット の送信はできるはずだということでしょうか。 そうなると、肝心の HttpURLConnection hCon = (HttpURLConnection)u.openConnection(); で止まってしまうのは他の原因ということでしょうか。 そもそも、このURL.openConnection()メソッドを呼び出した段階では、接続はどう なっているのでしょう。このとき接続できるかどうか試みているのでしょうか。 | ||||||||
1|2|3
次のページへ»
