Para uma aplicação Jena embarcada com a sua pilha JDK moderna, estabeleça um recurso partilhado antes de construir execuções de consulta ou iniciar trabalhadores:

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);

O construtor do Jena mantém os seus valores de transporte predefinidos ao adicionar o seletor. Para uma carga de trabalho embarcada que usa pontos finais SPARQL públicos permitidos e não tem conta de proxy, a lista de proxies HTTP pode fornecer o endereço HTTP do seletor. Isto continua a ser um valor predefinido partilhado da JVM, não um interruptor por pedido.

OperaçãoOrdem de seleção do cliente
Construtor de consultas HTTP comumCliente explícito, correspondência do registo por URL, predefinição do HttpEnv
SERVICE federado incorporadoCliente de registo correspondente, cliente de contexto da consulta, predefinição global

Por isso, uma substituição local ou do registo pode usar outra rota. O construtor HTTP resolve o seu cliente quando build é chamado e passa esse objeto à execução; substituir a predefinição mais tarde não reescreve uma execução já construída.

Mantenha estável o recurso de arranque. Use a interface local, de contexto ou de registo adequada quando as rotas diferirem.

Um servidor Fuseki autónomo também precisa da forma de executar a inicialização suportada pela sua versão implementada. Colocar este código Java num ficheiro não faz com que esse servidor o execute.

Artigos relacionados