쿼리가 시작되기 전에 Jena의 기본 HTTP 프록시를 설정하세요
JVM 전체에 적용되는 HttpEnv의 기본 클라이언트, 시작 시점, 그리고 SERVICE 호출에서 이를 재정의할 수 있는 클라이언트를 이해합니다.
최신 JDK 스택을 사용하는 임베디드 Jena 애플리케이션이라면 쿼리 실행을 만들거나 워커를 시작하기 전에 공통 폴백을 마련하세요.
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 코드를 파일에 넣는다고 해서 그 서버가 코드를 실행하지는 않습니다.