- PR -

JavaによるProxy経由のFTPクライアント

1
投稿者投稿内容
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2004-09-27 17:57
早速ですが質問に移らせて頂きます。
Jakartaのcommons-net-1.2.2パッケージを使ってFTPクライアントを作成しているのですが、
プロキシの設定がうまく動作しません。
状況としては、プロキシサーバへのアクセスが全く検知されない状態です。
プロキシ無しでFTPサーバに接続できることは確認できました。
プロキシの設定はSystemPropertyに設定しているのですが、方法が違うのでしょうか?
何か情報がありましたらご教授ください。
他のパッケージを利用する方法などでも結構です。
宜しくお願い致します。
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2004-09-27 22:39
SystemPropertyに設定しているのはいいのですが、どういうふうに設定しているのかが
わかりません。

とりあえず、下記のようにしてみてはいかがでしょうか?
コード:
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", "xxx.xxx.xxx.xxx");
System.setProperty("proxyPort", 80);

ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2004-09-28 10:13
ちょま吉様、ご返信ありがとうございます。
解決しましたので、報告させて頂きます。
当初、FTPがうまく繋がらなかった時のコードは以下のようになっていました。
コード:
System.setProperty("proxySet", "true");
System.setProperty("proxyHost", "xxx.xxx.xxx.xxx");
System.setProperty("proxyPort", 80);
ftp.connect(HOST); //HOST:FTPサーバのIPアドレス
ftp.login(USER, PASSWORD); //ログインIDとパスワード


また、上記の
"proxySet"-->"ftp.proxySet"
"proxyHost"-->"ftp.proxyHost"
"proxyPort"-->"ftp.proxyPort"
などと変更して試したりしても、うまく接続できませんでした。
また、この時のプロキシサーバはLinux上で、Squidを動かしていました。

SquidはクライアントからのアクセスをHTTPとして扱うような気がし、JavaのFTPClientクラスでは、このような接続ができないのではないかと考え、Squidの代わりにDelegateというプロキシサーバをインストールしました。
Delegateをプロキシサーバとして、上記のようなコードで接続しましたがそれでも接続できませんでした。

次に、コードを修正し以下のようにしました。
コード:
//SystemPropertyは使っていません。
ftp.connect(proxyHost, Integer.parseInt(proxyPort)); //プロキシサーバにconnect
ftp.login(USER + "@" + HOST, PASSWORD) //ログイン文字列を@付きで作る



この対応でFTP接続を行うことができました。
1

スキルアップ/キャリアアップ(JOB@IT)