Proxy-System-Properties in verschiedenen Threads

lubu

Mitglied
Hi,

ich stehe gerade vor dem Problem, dass ich in einem Thread die Proxy-Einstellungen über System-Properties setze (XML-Validierung gegen externes Schema) und in einem anderen Thread einen WebService aufrufe gegen einen lokalen Tomcat.

Grundsätzlich funktioniert alles, ich Frage mich allerdings, wenn beides zeitgleich passiert. Generell setze ich den Proxy in der Anwendung mittels:

System.setProperty( "proxySet", "true" );
System.setProperty( "http.proxyHost", "192.168.0.254" );
System.setProperty( "http.proxyPort", "3128" );

Für den WebService-Aufruf muss ich die Proxy-Einstellungen abschalten, da der Tomcat sich im lokalen Netz befindet und anschließend wieder einschalten, da die Proxy-Einstellung generell gesetzt ist.

System.setProperty( "proxySet", "false" );
System.setProperty( "http.proxyHost", "" );
System.setProperty( "http.proxyPort", "" );
WebServiceCall ...

Ich verstehe die Properties so, dass sie für die gesamte Umgebung gesetzt werden, in der das Programm läuft. So gesehen, wird also einer der beiden Threads nicht ordnungsgemäß funktionieren. (Oder stell ich mir das verkehrt vor?)

Gibt es noch eine Möglichkeit den Proxy zu konfigurieren? (Quasi pro Thread)

Danke Lutz
 
Hallo!

Ich halte das was du da machst für keine gute Idee... wie oft Ändert sich den das Schema gegen das du validierst? Wenn das nur äußerst selten passiert reicht es IMHo vollkommen aus wenn du dir das Schema einmal downloadest und dann in Zukunft immer lokal validierst.

Weiterhin gibt es seit Java 5 den ProxySelector -Mechanismus der es dir erlaubt dynmaisch zu entscheiden, ob nun für eine bestimmte URL Verbindung ein Proxy verwendet werden soll oder nicht.

Außerdem könntest du noch über das Property http.nonProxyHosts die Hosts für die du keine Proxy Verbindung schalten möchtest angeben...

Gruß Tom
 
Vielen Dank Tom

der erste Punkt ist richtig, kann so aber nicht umgesetzt werden.

der zweite Punkt ist ein guter Hinweis.

der dritte Punkt ist für mich die Lösung. Dieses Property hatte ich nicht in petto.

Danke Lutz
 
Zurück