Hi Ludovic,
On 25/07/2024 15:06, Ludovic Muller wrote:
Hi!
Thank you for all your great work on Apache Jena and Fuseki!
I need a Fuseki instance that has the following:
- the Fuseki core features
- the [HTTP Administration
Protocol](https://jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html)
- the UI
- GeoSPARQL support
- shiro, that can read its configuration from a `shiro.ini` file
- get the Fuseki configuration from a `config.ttl` file (where we can define
all the datasets we need, it can be GeoSPARQL or non-GeoSPARQL ones) ; I don't
need any help for writing the file, I just need the instance to be able to read
them.
I managed to trick to get it working for the 4.x versions of Apache Jena, but
I'm not able to upgrade to 5.x, as it always fails to start.
The way I did it was to
[patch](https://github.com/zazuko/fuseki-geosparql/blob/226c94e845005d306438ef4415602fd3c40cdc27/patches/enable-geosparql.diff)
the `jena-fuseki2/jena-fuseki-core/pom.xml` file to include the
`jena-geosparql` artifact, and then run `mvn package -Dmaven.javadoc.skip=true
-DskipTests` in `jena-fuseki2`.
This is how everything was built:
https://github.com/zazuko/fuseki-geosparql/blob/226c94e845005d306438ef4415602fd3c40cdc27/Dockerfile
Do you have a cleaner and more stable way to create such a Fuseki instance?
By this, I think of creating a new dedicated Maven project (or similar) that
includes all the necessary dependencies and configurations.
But I will need some help with that, as I never managed to get all parts
working together.
I know that the Fuseki HTTP Administration Protocol does not support GeoSPARQL
features (for example create a GeoSPARQL dataset from here) ; it could be great
to have this in the future (if it was not already done), but for now the focus
is on getting the Fuseki instance with all the mentioned features again, so
that we can upgrade in an easier way in the future.
The administration protocol is great for the ping, for the compaction, and many
other great features, that's why I still need it.
Creating the datasets is done manually in the ttl configuration file, so if for
now it’s not done using the administration protocol is not a huge issue for now.
Right now, when I try to build it using the same way I've done it until now, I
get the following error:
```
[fuseki 2024-07-25 07:52:45:534 +0000] [main] WARN
org.eclipse.jetty.ee10.webapp.WebAppContext {} - Failed startup of context
oeje10w.WebAppContext@13ebccd{org.apache.jena.fuseki.Servlet,/,b=file:///opt/fuseki/webapp/,a=STOPPED,h=oeje10s.SessionHandler@4e80960a{STOPPED}}
<file:///opt/fuseki/webapp/,a=STOPPED,h=oeje10s.SessionHandler@4e80960a%7BSTOPPED%7D%7D>
java.lang.IllegalArgumentException: Unable to mount FileSystem from unsupported
URI: jar:file:/opt/fuseki/fuseki-server.jar!/
at
org.eclipse.jetty.util.resource.FileSystemPool.mount(FileSystemPool.java:135)
~[fuseki-server.jar:5.1.0]
at
org.eclipse.jetty.util.resource.ResourceFactoryInternals$CompositeResourceFactory.mountIfNeeded(ResourceFactoryInternals.java:268)
~[fuseki-server.jar:5.1.0]
```
Can someone help me with this?
What should work is to take jena-fuseki-fulljar POM which is the
fuseki-server.jar in the apache-jena-fuseki download
and add jena-geosparql.
That's not much different to adding it to jena-fuseki-core, just better
to put it in later.
But I don't see why something causes "jar:file:" -- why the "file:" is
appearing.
Andy
Best,
Ludovic Muller.