On 04/06/2026 18:30, Chavez, Robert wrote:
Thank, Andy.
Apologies for not including the Fuseki version. I’m on 5.6.0
and that is the script in apache-jena-fuseki download?
or running from java?
Please show exactly how you are running fuseki.
Do you have Fuseki running without --cors?
"--empty" might help but normally it isn't necessary.
Do you need to change the CORS built-in configuration at all?
CORS is provided by Eclipse Jetty - which isn't an RDF system - and
Fuseki defaults to a setup that most people use.
The full error I’m seeing is:
All the startup output please.
13:26:15 INFO Config :: Load configuration:
file:////configuration/cors-config.ttl
13:26:15 ERROR Config :: No services found
And file://// (4 slashes) is strange.
I’ll try upgrading to 6.1.0 or whatever is latest.
Do the CORS config details in cors-config.ttl look syntactically correct?
That's not a CORS property file.
CORE is provided by Jetty - no RDF - where did
"fuseki:CORSConfiguration" come from?
A Java property file looks like
name1=value1
name2=value2
name3=v1,v2,3
Multiple values are comma separated, not repeated keys.
Without the line breaks the default seems to be:
----
allowedOrigins=*
allowedMethods=GET,POST,DELETE,PUT,HEAD,OPTIONS,PATCH
allowedHeaders=X-Requested-With, Content-Type, Accept, Origin,
Last-Modified, Authorization
exposedHeaders=Cache-Control, Content-Language, Content-Length,
Content-Type, Expires, Last-Modified, Pragma,
chainPreflight=false
----
There is no maxAge - maybe preflightMaxAge
Andy
From: Andy Seaborne <[email protected]>
Date: Thursday, June 4, 2026 at 11:33 AM
To: [email protected] <[email protected]>
Subject: Re: Fuseki CORS configuration question
Hi Robert,
Which version are you running?
For me,
> /fuseki-server --cors cors-config.ttl
works for 6.1.0, whereas 5.2.0 says:
"No dataset specified on the command line."
Andy
On 04/06/2026 13:16, Chavez, Robert wrote:
Greetings,
I am wondering if anyone could point me to some CORS configuration examples to
configure CORS for a standalone Fuseki server run at the command line.
I’ve searched high and low for some workable examples, but so far have not
found anything that works successfully, official documentation doesn’t have
much on the subject either.
What I’ve managed to glean from available information so far is that I can
declare a CORS configuration file with appropriate allow rules, something like:
@prefix fuseki:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2Ffuseki%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226251794%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=4EC28ugyxcOivpFw87hdnmf5%2Fgzw7cDXlrr2N3CQ1yw%3D&reserved=0<http://jena.apache.org/fuseki#>>
.
<#corsConfig> a fuseki:CORSConfiguration ;
fuseki:allowedOrigin
"https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.cloudfront.net%2F&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226279930%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=cVud6Sok96UPYqVJZmGd8ifbcJGFdMajuocZK3mYjxQ%3D&reserved=0<https://example.cloudfront.net/>"
;
fuseki:allowedMethod "GET" ;
fuseki:allowedMethod "POST" ;
fuseki:allowedHeader "Content-Type" ;
fuseki:allowedHeader "Origin" ;
fuseki:allowedHeader "X-Requested-With" ;
fuseki:allowedHeader "Accept" ;
fuseki:maxAge 3600 .
And then call that config file from the command line when launching Fuseki with:
/fuseki-server --cors cors-config.ttl
With this approach I was assuming that the CORS configuration would apply to
any endpoint declared in the main config (see below) with fuseki:serviceQuery.
But, that does not seem to be the case.
This results in a “No services found error"
As a result, I am wondering if the CORS config needs to be integrated somehow
with the main config file.
If this is the base configuration:
PREFIX : <http://base/#>
PREFIX fuseki:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2Ffuseki%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226303180%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=KLFCDdwbwOVzZT2rfClczvkI2ypsuKclqC5LcsoFVks%3D&reserved=0<http://jena.apache.org/fuseki#>>
PREFIX ja:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.hpl.hp.com%2F2005%2F11%2FAssembler%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226326276%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=%2BxtqwRswcT79nPkD%2Fe9iUHFYer%2Besheax%2F3UvNK0I6k%3D&reserved=0<http://jena.hpl.hp.com/2005/11/Assembler#>>
PREFIX rdf:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226348965%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=Iep46PZWSK2qfymwzILlj%2F%2BCpqV7mNxMhJWpUwbNyx8%3D&reserved=0<http://www.w3.org/1999/02/22-rdf-syntax-ns#>>
PREFIX rdfs:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226371875%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=GxSM9YIP9CYfLpMjYfGqN4dZiz9GMDhz2UkMfJyFlyo%3D&reserved=0<http://www.w3.org/2000/01/rdf-schema#>>
PREFIX tdb2:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2F2016%2Ftdb%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226394516%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=5%2FQMyr4PZrYCfugoWVQWJEIg8d3R%2F%2FPP7Qi128NkRas%3D&reserved=0<http://jena.apache.org/2016/tdb#>>
PREFIX schema:
<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fschema.org%2F&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226419246%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=KjMFzUaYd6pTmkohsOrTtPlJy3YTRDox0PCQrV0TiyU%3D&reserved=0<https://schema.org/>>
PREFIX text:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2Ftext%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226442169%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ZT%2BGJAqrf8iwLpDsmMA1%2FrRZFCc6GEXBtX0h22%2F3vrg%3D&reserved=0<http://jena.apache.org/text#>>
:service_tdb_all rdf:type fuseki:Service;
rdfs:label "TDB2 chd";
fuseki:dataset :text_dataset;
fuseki:name "chd";
fuseki:serviceQuery "query" , "sparql" , "";
fuseki:serviceReadGraphStore "get";
fuseki:serviceReadWriteGraphStore
"data";
fuseki:serviceUpdate "" , "update";
fuseki:serviceUpload "upload” .
I’m unsure of how to incorporate the CORS configuration intros config, this is
where some examples would be helpful.
Perhaps something like this for the “sparql” endpoint?
PREFIX : <http://base/#>
PREFIX fuseki:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2Ffuseki%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226468493%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=%2BkYUEUL81dVUhuC5R36iErJcZQbq1hkQ35mgj0AdUTg%3D&reserved=0<http://jena.apache.org/fuseki#>>
PREFIX ja:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.hpl.hp.com%2F2005%2F11%2FAssembler%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226497682%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=uHZE6tHECZDnX%2BK9gZb537G%2BBc3g%2BAa7psHtFbBhJ6U%3D&reserved=0<http://jena.hpl.hp.com/2005/11/Assembler#>>
PREFIX rdf:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226527363%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=T1wdipvOvg%2FdysgA3BkIyWu%2B9q6UwRNaDkjcMBs46ZY%3D&reserved=0<http://www.w3.org/1999/02/22-rdf-syntax-ns#>>
PREFIX rdfs:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226558729%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=OpQ%2FWIvveN45GTjJ0po%2Fch4a%2FUOuecZl2t45m%2BeXvG4%3D&reserved=0<http://www.w3.org/2000/01/rdf-schema#>>
PREFIX tdb2:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2F2016%2Ftdb%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226591080%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ikexljncMUAt7Pg1A6hHogLFgbeDUZv4Gn045rqcVZ0%3D&reserved=0<http://jena.apache.org/2016/tdb#>>
PREFIX schema:
<https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fschema.org%2F&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226620560%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=%2BvUwpfRB23ovxHNWurW79kfoIdh%2BrHaecuPsqVVb7n0%3D&reserved=0<https://schema.org/>>
PREFIX text:
<https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fjena.apache.org%2Ftext%23&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226648656%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=aGkBZ6IAr2Zz0r5Mwou1dPdbS2TvpY9r3f5DauJ12kE%3D&reserved=0<http://jena.apache.org/text#>>
:service_tdb_all rdf:type fuseki:Service;
rdfs:label "TDB2 chd";
fuseki:dataset :text_dataset;
fuseki:name "chd”;
fuseki:serviceQuery "query" , "sparql" , "”;
## SPARQL query services e.g. http://host:port/chd/sparql?query=
fuseki:endpoint [
fuseki:operation fuseki:query ;
fuseki:name "sparql";
fuseki:CORSConfiguration [
fuseki:allowOrigin
"https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.cloudfront.net%2F&data=05%7C02%7Cr.chavez%40northeastern.edu%7C0f119315b205425565fd08dec24ea612%7Ca8eec281aaa34daeac9b9a398b9215e7%7C0%7C0%7C639161840226678810%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=O7S493HolBt5MVFShkDghAgyks6cnUDIhWlk6uNqa8s%3D&reserved=0<https://example.cloudfront.net/>"
;
fuseki:allowMethods "GET, POST," ;
fuseki:allowHeaders "Content-Type,
Authorization” ;
fuseki:allowedHeader "Origin" ;
fuseki:allowedHeader "X-Requested-With" ;
fuseki:allowedHeader "Accept" ;
fuseki:maxAge 3600 .
]
] ;
fuseki:serviceReadGraphStore "get";
fuseki:serviceReadWriteGraphStore
"data";
fuseki:serviceUpdate "" , "update";
fuseki:serviceUpload "upload” .
The above is just a guess, so any guidance would be greatly appreciated.
Thank you,
Robert