From dcfc32803c12692d28ca484b687ab37d7f9af997 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Mon, 25 Jun 2012 20:57:52 +0000 Subject: [PATCH] better error messages if remote SPARQL endpoint is unavailable --- .../rdfservice/impl/sparql/RDFServiceSparql.java | 15 +++++++++++++++ .../webapp/servlet/setup/WebappDaoSetup.java | 3 +++ 2 files changed, 18 insertions(+) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java index 4ddcfbfb6..9d6773d1c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java @@ -10,6 +10,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.apache.commons.httpclient.HttpException; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -77,6 +78,20 @@ public class RDFServiceSparql extends RDFServiceImpl implements RDFService { this.updateEndpointURI = updateEndpointURI; this.readRepository = new HTTPRepository(readEndpointURI); this.updateRepository = new HTTPRepository(updateEndpointURI); + + testConnection(); + } + + private void testConnection() { + try { + this.sparqlSelectQuery( + "SELECT ?s WHERE { ?s a " + + " }", + RDFService.ResultFormat.JSON); + } catch (Exception e) { + throw new RuntimeException("Unable to connect to endpoint at " + + readEndpointURI, e); + } } /** diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/WebappDaoSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/WebappDaoSetup.java index 5e30a3870..c16d80c09 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/WebappDaoSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/WebappDaoSetup.java @@ -133,6 +133,7 @@ public class WebappDaoSetup extends JenaDataSourceSetupBase baseOms.setTBoxModel(tboxAssertions); } catch (Throwable e) { log.error("Unable to load tbox assertion cache from DB", e); + throw new RuntimeException(e); } // TBox inferences @@ -155,6 +156,7 @@ public class WebappDaoSetup extends JenaDataSourceSetupBase inferenceOms.setTBoxModel(tboxInferences); } catch (Throwable e) { log.error("Unable to load tbox inference cache from DB", e); + throw new RuntimeException(e); } // union ABox @@ -204,6 +206,7 @@ public class WebappDaoSetup extends JenaDataSourceSetupBase } catch (Throwable e) { log.error("Unable to load application metadata model cache from DB" , e); + throw new RuntimeException(e); } checkForNamespaceMismatch( baseOms.getApplicationMetadataModel(), ctx );