システム プロキシの検出に不可解な問題があります。実際には、実行時にシステム プロキシ設定を検出する適切なコードがあり、pac ファイルと http プロキシ設定も処理できます。ターゲットステーションですべてを保存して実行すると、完全に正しく機能します。
BUT: ターゲット ステーションで小さなコードを 1 つ実行し、それ以外 (jar) はすべて、Apache Web サーバーが実行される別のステーションに保存します。メインから、URLClassloader を使用してクラスをロードします。これにより、ネットワークを介してコードがロードされ、プロキシ検出も担当します。このように、デフォルトのプロキシ セレクターは常に DIRECT を指定し、適切な設定を見つけることができません。
私が思うに、問題は私が設定したいということです
System.setProperty("java.net.useSystemProxies","true");
ロードされたクラスでは、どういうわけかこれは機能しません...しかし、プロパティ値をsysoutすると、true
.
私は小さなテストプログラムを書きましたが、唯一の違いは次のとおりです。
A)
Class.forname("a"); -> a is in the classpath
B)
URL[] url = new URL[1];
url[0] = new URL("http://1.2.3.4/dtfw");
URLClassloader u = new URLClassloader(url);
Class.forname("a", true, u);
両方のコードが機能しますが、唯一の違いは出力にあります。誰にもアイデアはありますか?
前もって感謝します!!
ゾミ