2014-05-15 7 views
-2

, 나는 AA 코드가 새로운 트리플로 REPO를 업데이트 할 수 있지만 방법은 몇 가지 오류 준 실행할 것이다 : 아래 Java API를 사용하여 Sesame RDF 저장소에서 SPARQL 업데이트를 실행하려면 어떻게해야합니까?

내 코드는 다음 updateQuery 문자열입니다 아래

public void temporalsendRIG(RepositoryConnection con) { 
     ArrayList<String> userInputArrayList = new ArrayList<String>(); 
     populateArrayList(userInputArrayList); 
     try { 
      con = makeConnection(RemoteServer_url, Repository_id); 
      String updateQuery = buildUpdateQuery(userInputArrayList); 
      System.out.println(updateQuery); 
      Update update = con.prepareUpdate(QueryLanguage.SPARQL, 
         updateQuery); 
         update.execute(); 


     } catch (MalformedQueryException e) { 
      e.printStackTrace(); 
     }catch (RepositoryException e) { 
      e.printStackTrace(); 
     }catch(UpdateExecutionException e){ 
      e.printStackTrace(); 
     } 

    } 

및 I 구문 분석 오전 :

마지막으로
public String buildUpdateQuery(ArrayList<String> arr){ 
    String updateQuery = 
     "PREFIX owl:<http://www.w3.org/2002/07/owl#> \n" + 
     "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" + 
     "DELETE \n" + 
     "{ \n" + 
      "?s ?p ?o.\n" + 

      "}\n" + 
      "INSERT \n" + 
      "{\n" + 
      "?s \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/bookerFirstName>" + "\"" + arr.get(0) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/cityOfInterest>" + "\"" + arr.get(1) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/distanceToCityOfInterest>" + "\"" + arr.get(2) + "\" ;\n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/maximumShift>" + "\"" + arr.get(3) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/requiredAmountOfDays>" + "\"" + arr.get(4) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/requiredBedrooms>" + "\"" + arr.get(5) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/requiredDistanceToLake>" + "\"" + arr.get(6) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/requiredOccupacy>" + "\"" + arr.get(7) + "\" ; \n" + 
        "<http://localhost:9090/reservationService/onto/Reservation/startingBookingDay>" + "\"" + arr.get(8) + "\" . \n" + 

      "} \n" + 
      "WHERE \n" + 
      "{ \n" + 
       " ?s rdf:type <http://sswapmeet.sswap.info/sswap/Subject>. \n" + 
       " ?s ?p ?o. \n" + 
       " FILTER NOT EXISTS { ?s rdf:type ?o } \n" + 
       "FILTER NOT EXISTS { ?s <http://sswapmeet.sswap.info/sswap/mapsTo> ?o } \n" + 
      "} \n" 
      ; 


      return updateQuery; 
} 

가, 여기에 내가 점점 오전 오류가 나는 코드를 실행하면

May 15, 2014 3:17:13 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused 
May 15, 2014 3:17:13 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: Retrying request 
May 15, 2014 3:17:13 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused 
May 15, 2014 3:17:13 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: Retrying request 
May 15, 2014 3:17:13 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused 
May 15, 2014 3:17:13 PM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry 
INFO: Retrying request 
org.openrdf.repository.http.HTTPUpdateExecutionException: Connection refused 
    at org.openrdf.repository.http.HTTPUpdate.execute(HTTPUpdate.java:70) 
    at org.henry.queryUpdate.temporalsendRIG(queryUpdate.java:63) 
    at org.henry.queryUpdate.main(queryUpdate.java:138) 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 
    at java.net.Socket.connect(Socket.java:579) 
    at java.net.Socket.connect(Socket.java:528) 
    at java.net.Socket.<init>(Socket.java:425) 
    at java.net.Socket.<init>(Socket.java:280) 
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80) 
    at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122) 
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) 
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361) 
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) 
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) 
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) 
    at org.openrdf.http.client.HTTPClient.sendUpdate(HTTPClient.java:387) 
    at org.openrdf.repository.http.HTTPUpdate.execute(HTTPUpdate.java:57) 
    ... 2 more 
+0

이 질문보기 : http://stackoverflow.com/questions/6876266/java-net-connectexception-connection-refused – kuporific

+0

http://answers.semanticweb.com/questions/28275/openrdf- sparql-update-doesnt-execute –

답변

1

문제가 해결되었습니다. repository_url에 오타가 있습니다. 이 코드는 질문에 표시된 것처럼 완벽합니다. 유일한 문제는 내가 localhost : 8080을 호출하는 것이 었습니다. 나의 locahost 포트가 9090 일 때. 그것은 일부 복사 오류 때문이었습니다. 주 프로젝트에서 코드 조각을 복사하여 테스트하고 포트 번호를 올바르게 변경하는 것을 잊었습니다. 감사합니다