Search code examples
tomcatinstallationsemantic-websesamelinked-data

"Invalid Server URL" error after replacing .jar files while installing GraphDB


I was trying to install GraphDB to complement default Sesame. Following the instructions for 'Easy Install' in http://owlim.ontotext.com/display/OWLIMv54/OWLIM-SE+Installation, I copied the .war files from GraphDB distribution to my Tomcat directory and replaced the pre-existing .war files that came with Sesame. However, I saw no 'OWLIM-SE' repositories in the Sesame drop down after restarting the server.

While troubleshooting, I replaced the .jar files in C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\openrdf-sesame\WEB-INF\lib with those from the most recent Sesame version to see if it makes any difference (I had 2.8.3).

Difference it did make. I now get only the 'Change Server' page. Upon entering the URL of my server as http://my.ip.address:8080/openrdf-sesame, I get an "Invalid Server url" error. I had changed the server url from localhost to ip address so that I can access it externally. How can I resolve two issues:

  1. Get Sesame working again
  2. Install GraphDB

Following is the log:

Jul 08, 2015 4:41:24 PM org.openrdf.workbench.proxy.ServerValidator canConnect
WARNING: java.io.FileNotFoundException: http://my.ip.address.here:8080/openrdf-sesame/protocol
java.io.FileNotFoundException: http://my.ip.address.here/openrdf-sesame/protocol
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1834)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)
    at java.net.URL.openStream(URL.java:1038)
    at org.openrdf.workbench.proxy.ServerValidator.canConnect(ServerValidator.java:121)
    at org.openrdf.workbench.proxy.ServerValidator.isValidServer(ServerValidator.java:76)
    at org.openrdf.workbench.proxy.WorkbenchGateway.findWorkbenchServlet(WorkbenchGateway.java:251)
    at org.openrdf.workbench.proxy.WorkbenchGateway.service(WorkbenchGateway.java:121)
    at org.openrdf.workbench.base.BaseServlet.service(BaseServlet.java:141)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.openrdf.workbench.proxy.CookieCacheControlFilter.doFilter(CookieCacheControlFilter.java:63)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

Solution

  • Resolved! Here's what worked:

    I first installed GraphDB. Then, I replaced the jar files of GraphDB with those of Sesame 2.7.16. I copied the same set of files to the 'libs' folder of both Sesame-openrdf and Sesame-workbench. Though some jar files are duplicate, I did not remove one version for the other.
    

    For anyone reading this, please note this is a risky workaround at best. Implementing CORS is a better option. More information is available at http://answers.ontotext.com/questions/1984/previous-functional-ajax-code-with-jsonp-not-working-with-graphdb-lite.