2014-01-15 3 views
1

Jena ARQ를 PreemptiveBasicAuthenticator와 함께 사용하려고하는데 성공하지 못했습니다. 아무도 도와 줄 수 있습니까?Jena ARQ를 사용하여 기본 인증을 사용하여 원격 저장소에 액세스 - 선점

인스턴트 메신저는 항상 휴식 클라이언트를 통해 또는 openrdf를 사용하여 동일한 요청이 작동하지만 401을 얻습니다. apache http 클라이언트와 관련이 있으며 AuthScope를 설정해야 할 필요가 있습니까?

import com.hp.hpl.jena.query.Query; 
import com.hp.hpl.jena.query.QueryExecution; 
import com.hp.hpl.jena.query.QueryExecutionFactory; 
import com.hp.hpl.jena.query.QueryFactory; 
import com.hp.hpl.jena.query.ResultSet; 
import org.apache.jena.atlas.web.auth.HttpAuthenticator; 
import org.apache.jena.atlas.web.auth.PreemptiveBasicAuthenticator; 
import org.apache.jena.atlas.web.auth.ScopedAuthenticator; 

import java.net.URI; 

public class JenaConnect { 

    private final static String SPARQLR_ENDPOINT = "https://repo-eh-01.sparqlr.com/repositories/examples-repo"; 
    private final static String SPARQLR_USERNAME = "examples-repo"; 
    private final static String SPARQLR_PASSWORD = "XXXX"; 

    public static void main(String[] args) throws Exception { 

     String queryString = "SELECT * WHERE {?s ?p ?o}"; 
     Query query = QueryFactory.create(queryString); 
     HttpAuthenticator authenticator = new PreemptiveBasicAuthenticator(
       new ScopedAuthenticator(new URI(SPARQLR_ENDPOINT), SPARQLR_USERNAME, SPARQLR_PASSWORD.toCharArray()) 
     ); 
     QueryExecution queryExecution = QueryExecutionFactory.sparqlService(SPARQLR_ENDPOINT, query, authenticator); 
     try { 
      ResultSet results = queryExecution.execSelect(); 
      int i = 0; 
      while(results.hasNext()) { 
       results.next(); 
       i++; 
      } 
      System.out.println(i); 
     } finally { 
      queryExecution.close(); 
     } 
    } 
} 
+0

당신이 (org.apache.http''을 위해 특별히 이상) 코드에 대한 DEBUG' 수준의 로깅'를 켤 수 인증이 실제로 사용되는지 여부를 식별 할 수있는 로그 – RobV

답변

관련 문제