我在系統代理檢測中遇到了一些神祕的問題: 實際上,我有正確的代碼在運行時檢測系統代理設置,它也可以處理pac文件和http代理設置。 當我在目標站上存儲並執行所有操作時,它的工作原理絕對正確。系統代理設置檢測失敗
但是:我在目標站上運行一小段代碼,並在其他站上運行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);
這兩個代碼段的工作,唯一不同的是在輸出。 有沒有人有一些想法?
在此先感謝!
Zsomi