If the log isn't showing anything, then requests aren't arriving at
Fuseki within Jetty. That means a URL is sent that isn't routed to a n
endpoint. Usually, the URL is wrong.
You have named a Sesame repository http://localhost:3030/ds/sparql --
but that in Fuseki is a SPARQL endpoint, not a Sesame repository
http://www.openrdf.org/doc/sesame2/system/ch08.html says:
"""
Queries on a specific repository with ID <ID> can be evaluated by
sending requests to: <SESAME_URL>/repositories/<ID>.
"""
e.g.
GET /openrdf-sesame/repositories/mem-rdf?query
so my guess is that it is attaching "/repositories" to the address you
specified and hence the SPARQL endpoint it uses is not actually the one
you pass in.
You might try:
HTTPRepository("http://localhost:3030/ds", "")
HTTPRepository("http://localhost:3030/", "ds")
if then sesame constructs the right URL for the SPARQL endpoint by
adding the /query and filling in ?query= but it is inserts
/repositories, it's not going to work.
The reverse works for me: sesame server and SOH/Fuseki command line tools:
s-query --service
'http://localhost:8080/openrdf-workbench/repositories/ds/query' 'ASK{}'
Or try running Fuseki with a dataset at "/repositories/ds"
Andy
On 19/11/12 22:24, David Perez-Lopez wrote:
Thanks for answering Andy,
Just in case it helps these is the piece of code I'm using for testing the
connection. Again if I use the URL stored in the variable endpointAEMT, it
works but if I do it with the one in endpointFuseki it doesn't.
public static void main(String[] args) {
// Doesn't work with
String endpointFuseki = "http://localhost:3030/ds/sparql";
// Works with Virtuoso endpoint
String endpointAEMT = "http://aemet.linkeddata.es/sparql";
try {
HTTPRepository endPoint = new HTTPRepository(endpointFuseki,
"");
endPoint.initialize();
RepositoryConnection conn = endPoint.getConnection();
try {
String sparqlQuery = "SELECT * WHERE {?X ?P ?Y} LIMIT 10 ";
TupleQuery query =
conn.prepareTupleQuery(QueryLanguage.SPARQL, sparqlQuery);
TupleQueryResult result = query.evaluate();
while (result.hasNext()) {
// do something linked and open
}
}
} finally {
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
And the log shows something like:
15:41:22 INFO [1] 404 Service Description: /ds/sparql
?
In fact in my method call there is no trace in the server terminal
If a request is sent without a query, it's a service description request
(which you can't set yet).
Try in a browser you get:
[[
Error 404: Service Description: /ds/sparql
]]
You need a query.
In a browser try:
http://localhost:3030/ds/sparql?query=ASK{}&output=text
(a simple query - force output to text)
This is the SPARQL protocol which sesame supports (it's not chnaged for
SPARQL 1.1). There needs to be ?query or the POSTed form equivalent.
The browser replies with yes
I've tried with the Firefox addons firebug & tamperData to change the form
method to GET and modify the accepts and the parameters sent in the POST
variables to try to reproduce the same environment that are sent with the
Sesame connector, it keeps working with the browser but no lack with the
connector.