Задайте проксито по подразбиране за HTTP в Jena преди стартиране на заявките
Разберете клиента по подразбиране на HttpEnv за цялата JVM, момента на стартирането му и клиентите, които могат да го заменят при SERVICE заявки.
За вградено приложение на Jena с модерния JDK стек създайте общ резервен вариант, преди да изграждате изпълнения на заявки или да стартирате работници:
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);Конструкторът на Jena запазва настройките си за транспорт, докато добавя селектора. За вградено натоварване с разрешени публични SPARQL крайни точки и без акаунт за прокси, списъкът с HTTP проксита може да предостави HTTP адреса на селектора. Това остава споделена настройка по подразбиране за JVM, а не превключвател за всяка заявка.
| Операция | Ред за избор на клиент |
|---|---|
| Обикновен конструктор на HTTP заявки | Явен клиент, съвпадение в регистъра по URL, настройка по подразбиране на HttpEnv |
| Вграден федериран SERVICE | Съответстващ клиент от регистъра, клиент от контекста на заявката, глобална настройка по подразбиране |
Затова локално или регистрово заместване може да използва друг маршрут. HTTP конструкторът определя клиента си при извикване на build и предава този обект на изпълнението; замяната на настройката по-късно не пренаписва вече изградено изпълнение.
Поддържайте резервния вариант при стартиране стабилен. Използвайте подходящия локален/контекстов/регистров интерфейс, когато маршрутите се различават.
Самостоятелен сървър Fuseki също се нуждае от поддържания от внедрената му версия начин за изпълнение на инициализация. Поставянето на този Java код във файл не кара сървъра да го изпълни.