2010-03-03 2 views
6

sto facendo un po 'di sevizi web lavoro su Java 5 su un Mac (10.6.2) ....Java elabora utilizzando un server proxy, getti a tutto

fin da quando ci ha fatto iniziare a utilizzare un server proxy, la vita è diventato molto più difficile Sembra che Java stia inserendo le impostazioni del server proxy di sistema, ma non l'elenco di esclusione. Ciò significa che quando provo a chiamare un servizio web per "localhost", java cerca il suo server proxy e la mia chiamata esplode. Lo stesso vale per il mio nome host o IP.

Quindi per lavorare in ufficio, devo andare su Impostazioni di sistema e rimuovere la configurazione del proxy. Quindi va tutto bene, tranne che non riesco a Internet. Non importa cosa faccio nelle mie impostazioni di sistema con l'elenco di esclusione, non ha alcun effetto su Java.

Ho provato -Djava.net.useSystemProxies = falso e non sembrava fare nulla.

grazie per qualsiasi aiuto!

+0

java.net.useSystemProxies è falso per impostazione predefinita (per quanto ne so). Hai impostato su true? – Yishai

risposta

2

Il riferimento definitivo per la configurazione di proxy di rete in Java 5 è questa pagina Java Networking and Proxies. Da questa pagina, sembra che Java 5 non presta attenzione alle impostazioni di sistema dall'ambiente host. Ma anche se dovrebbe prestare attenzione a loro, il fatto che questo (apparentemente) non funzioni per te significa che non dovresti fare affidamento su questo ... almeno per ora.

Al fine di configurare in modo esplicito una Java 5 JVM per utilizzare un proxy predefinito per HTTP è necessario impostare le proprietà del sistema Java:

  • http.proxyHost - l'indirizzo DNS o IP del proxy
  • http.proxyPort - il numero di porta per il proxy
  • http.nonProxyHosts - un elenco di host o domini a cui connettersi direttamente, separati dal carattere "pipe" |.

Se si utilizza anche HTTPS, è inoltre necessario configurare https.proxyHost e https.proxyPort.

E, penso che sia necessario impostare http.proxyHost per http.nonProxyHosts per avere alcun effetto. L'impostazione di quest'ultimo da sola potrebbe non avere alcun effetto.

Ulteriori dettagli sono nella pagina collegata sopra. Ti consiglierei di utilizzare le opzioni "-D" nello script di comando che usi per avviare l'app. Forse potresti fare in modo che questo script richiami i parametri del proxy dalle impostazioni di sistema.

Si noti che in Java 6 e versioni successive, le modifiche al supporto proxy di rete (di nuovo) e una JVM Java 6 effettuano il prelievo da in determinate circostanze.