11

tomcat7 で実行されているサーブレットがあり、サード パーティの Web サイトに対して Web サービス呼び出しを行います。呼び出しは Windows マシンからは正常に機能しますが、Tomcat から実行すると失敗します。Tomcat は Windows のプロキシ設定を自動的に使用しませんか? 追加した

set JAVA_OPTS=%JAVA_OPTS% "-Dhttp.proxySet=true"
set JAVA_OPTS=%JAVA_OPTS% "-Dhttp.proxyHost=IP"
set JAVA_OPTS=%JAVA_OPTS% "-Dhttp.proxyPort=8080"

CATALINA.BAT と

http.proxyHost=IP
http.proxyPort=8080

catalina.properties にしかし、まだ変更はありません。Windows のプロキシ設定を使用するように Tomcat を設定するにはどうすればよいですか? Tomcat が指定されたプロキシ設定を取得しているかどうかを確認する方法はありますか?

4

6 に答える 6

32

の使用に同意しませんjava.net.Proxy

変更する必要がある場合はどうなりますか? 新しいビルド、新しいリリース。プロキシの設定は簡単なはずです。システム プロパティまたは Tomcat JAVA_OPTS の両方でうまく機能します。私は両方の方法でそれを使用しました。独自の Java バージョンを持つ Tomcat があるため、注意を払い、どの JAVA_OPTS がロードされているか、どの Java が使用されているかなどを確認してください。以前の投稿に関しては、ロードされる前に Java を使用する方法はありません :)。そのため、Tomcat は、システム プロパティが使用される前にそれを使用することはできません... Tomcat がシステム プロパティを読み取らない別の JRE を使用する場合のみです。

このセットアップをテストするだけです:

set "JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxyHost=proxy.com -Dhttp.proxyPort=8080 "

catalina.bat で、うまく動作します。

于 2013-01-22T08:41:53.663 に答える
5

プロキシ設定を指定する際、以下のようにプロキシ サーバー名を定義する必要があります。

"-Dhttp.proxyHost=proxy.example.com"
于 2012-11-23T08:07:19.343 に答える
3

/bin/setenv.sh を作成します (WINDOWS \bin\setenv.bat の場合):

JAVA_OPTS="-Dhttp.proxySet=true -Dhttp.proxyHost=<proxy_hostname> -Dhttp.proxyPort=<port_number> -Dhttp.nonProxyHosts=<domain_one>|<domain two> $JAVA_OPTS"

: setenv.sh/setenv.bat が既にある場合は、上記のコマンドの行を追加できます。Tomcat 起動スクリプトは、Tomcat インスタンスを起動する前に setenv スクリプトを自動的に実行します。

于 2016-02-16T22:01:44.317 に答える
2

いいえ、Tomcat はシステム プロキシ設定を自動的に使用しません。

が提供する施設を調べることをお勧めしますjava.net.Proxy。これにより、実行時にプロキシを動的に指定できます。システム プロパティは機能しますが、一度だけ読み取らHttpURLConnectionれます。設定する前に Tomcat が独自の目的で既に を使用している場合は、それで終わりです。設定は効果がありません。

于 2012-09-07T12:16:53.970 に答える
1

jProxyLoader ライブラリを使用できます。このライブラリを使用すると、特定のホストへの接続にのみプロキシを使用するように Tomcat を構成できます。あなたの場合、Webサービスを提供するホストへの接続に対してのみプロキシを経由するようにTomcatを構成できます(他のすべての接続は、プロキシなしでTomcatの「通常の」方法で処理されます)。

完全なセットアップについては、プロジェクトの Web サイトで説明されています: http://jproxyloader.sourceforge.net/examples/web-application-on-tomcat.html

于 2014-08-04T08:23:11.943 に答える