Jenas Standard-HTTP-Proxy vor dem Start von Abfragen setzen
Verstehen Sie HttpEnvs JVM-weiten Standardclient, seinen Startzeitpunkt und die Clients, die ihn für SERVICE-Aufrufe überschreiben können.
Für eine eingebettete Jena-Anwendung mit ihrem modernen JDK-Stack legen Sie einen gemeinsamen Rückfallweg fest, bevor Sie Abfrageausführungen bauen oder Worker starten:
import java.net.InetSocketAddress;
import java.net.ProxySelector;
import org.apache.jena.http.HttpEnv;
var http = HttpEnv.httpClientBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example.net", 8080)))
.build();
HttpEnv.setDftHttpClient(http);Der Builder von Jena behält seine Transportstandards bei, während er den Selektor hinzufügt. Für eine eingebettete Arbeitslast mit zulässigen öffentlichen SPARQL-Endpunkten und ohne Proxykonto kann die HTTP-Proxy-Liste die HTTP-Adresse des Selektors liefern. Das bleibt ein gemeinsamer JVM-Standard, kein Schalter pro Anforderung.
| Vorgang | Reihenfolge der Clientauswahl |
|---|---|
| Gewöhnlicher HTTP-Abfrage-Builder | Expliziter Client, URL-basierter Registrierungstreffer, HttpEnv-Standard |
| Eingebauter föderierter SERVICE | Passender Registrierungsclient, Abfragekontext-Client, globaler Standard |
Eine lokale oder registrierungsbasierte Überschreibung kann daher eine andere Route nutzen. Der HTTP-Builder bestimmt seinen Client beim Aufruf von build und übergibt dieses Objekt an die Ausführung; ein späterer Austausch des Standards schreibt eine bereits gebaute Ausführung nicht um.
Halten Sie den Rückfallweg beim Start stabil. Verwenden Sie die passende lokale/Kontext-/Registrierungsschnittstelle, wenn sich die Routen unterscheiden.
Auch ein eigenständiger Fuseki-Server braucht den von seiner eingesetzten Version unterstützten Weg, die Initialisierung auszuführen. Dieser Java-Code in einer Datei bewirkt nicht, dass der Server ihn ausführt.