I have a java application that has some dependencies, among them another project with its own dependencies. Whenever I run it from Netbeans or with mvn exec is fine but when I try to package it, even though it's successfully built, at run time I get the following error:
Exception in thread "main" org.openrdf.rio.UnsupportedRDFormatException: No parser factory available for RDF format Turtle (mimeTypes=text/turtle, application/x-turtle; ext=ttl)
at org.openrdf.rio.Rio.createParser(Rio.java:198)
at org.openrdf.rio.Rio.createParser(Rio.java:213)
at org.openrdf.repository.util.RDFLoader.loadInputStreamOrReader(RDFLoader.java:318)
at org.openrdf.repository.util.RDFLoader.load(RDFLoader.java:222)
at org.openrdf.repository.util.RDFLoader.load(RDFLoader.java:104)
at org.openrdf.repository.base.RepositoryConnectionBase.add(RepositoryConnectionBase.java:217)
at net.antidot.semantic.rdf.model.impl.sesame.SesameDataSet.loadDataFromFile(SesameDataSet.java:160)
so the problem is that the sesame rio parsers seem not to be included even though I can see them in my maven repository. I include all the dependencies at the included project. I also tried to exclude them and explicitly add them to my main project and it again failed.
Any suggestions?
my dependencies tree:
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ RMLMapper ---
[INFO] be.ugent.mmlab:RMLMapper:jar:0.1
[INFO] +- junit:junit:jar:4.11:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- xom:xom:jar:1.2.5:compile
[INFO] | +- xml-apis:xml-apis:jar:1.3.03:compile
[INFO] | +- xerces:xercesImpl:jar:2.8.0:compile
[INFO] | \- xalan:xalan:jar:2.7.0:compile
[INFO] +- jlibs:jlibs-xmldog:jar:1.0:compile
[INFO] | +- jlibs:jlibs-xml:jar:1.0:compile
[INFO] | | +- jlibs:jlibs-core:jar:1.0:compile
[INFO] | | \- jlibs:jlibs-nbp:jar:1.0:compile
[INFO] | \- jaxen:jaxen:jar:1.1.1:compile
[INFO] +- com.jayway.jsonpath:json-path:jar:0.8.1:compile
[INFO] | +- net.minidev:json-smart:jar:1.1.1:compile
[INFO] | \- commons-lang:commons-lang:jar:2.6:compile
[INFO] +- com.jayway.jsonpath:json-path-assert:jar:0.9.1:test
[INFO] | \- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] +- net.antidot:db2triples:jar:1.0.2:compile
[INFO] | +- commons-logging:commons-logging:jar:1.1.2:compile
[INFO] | +- mysql:mysql-connector-java:jar:5.1.25:compile
[INFO] | +- postgresql:postgresql:jar:9.1-901.jdbc4:compile
[INFO] | \- org.slf4j:slf4j-simple:jar:1.6.1:runtime
[INFO] +- org.openrdf.sesame:sesame-runtime:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-model:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-repository-api:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-repository-manager:jar:2.7.12:compile
[INFO] | | +- org.openrdf.sesame:sesame-repository-event:jar:2.7.12:compile
[INFO] | | +- org.openrdf.sesame:sesame-sail-memory:jar:2.7.12:compile
[INFO] | | +- org.openrdf.sesame:sesame-http-client:jar:2.7.12:compile
[INFO] | | | \- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] | | \- org.openrdf.sesame:sesame-http-protocol:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-repository-http:jar:2.7.12:compile
[INFO] | | +- org.openrdf.sesame:sesame-queryparser-api:jar:2.7.12:compile
[INFO] | | \- org.openrdf.sesame:sesame-queryresultio-api:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-repository-sparql:jar:2.7.12:compile
[INFO] | | +- org.openrdf.sesame:sesame-queryparser-sparql:jar:2.7.12:compile
[INFO] | | \- org.openrdf.sesame:sesame-queryresultio-sparqlxml:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-repository-contextaware:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-repository-sail:jar:2.7.12:compile
[INFO] | | \- org.openrdf.sesame:sesame-rio-trig:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-sail-api:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-sail-federation:jar:2.7.12:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] | +- org.openrdf.sesame:sesame-queryparser-serql:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-queryresultio-binary:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-queryresultio-sparqljson:jar:2.7.12:runtime
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.2.1:runtime
[INFO] | +- org.openrdf.sesame:sesame-queryresultio-text:jar:2.7.12:runtime
[INFO] | | \- net.sf.opencsv:opencsv:jar:2.0:runtime
[INFO] | +- org.openrdf.sesame:sesame-repository-dataset:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-languages:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-binary:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-nquads:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-n3:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-rdfjson:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-rdfxml:jar:2.7.12:runtime
[INFO] | +- org.openrdf.sesame:sesame-rio-trix:jar:2.7.12:runtime
[INFO] | \- org.openrdf.sesame:sesame-sail-rdbms:jar:2.7.12:runtime
[INFO] | \- commons-dbcp:commons-dbcp:jar:1.3:runtime
[INFO] | \- commons-pool:commons-pool:jar:1.5.4:runtime
[INFO] +- org.openrdf.sesame:sesame-sail-nativerdf:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-sail-inferencer:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-queryalgebra-evaluation:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-queryalgebra-model:jar:2.7.12:compile
[INFO] | +- org.openrdf.sesame:sesame-query:jar:2.7.12:compile
[INFO] | \- org.openrdf.sesame:sesame-util:jar:2.7.12:compile
[INFO] +- com.sun.org.apache:jaxp-ri:jar:1.4:compile
[INFO] | \- javax.xml.parsers:jaxp-api:jar:1.4:compile
[INFO] +- net.sourceforge.javacsv:javacsv:jar:2.0:compile
[INFO] +- commons-io:commons-io:jar:1.3.2:compile
[INFO] +- net.sf.saxon:Saxon-HE:jar:compressed:9.5.1-4:compile
[INFO] +- org.jodd:jodd-lagarto:jar:3.5:compile
[INFO] | +- org.jodd:jodd-log:jar:3.5:compile
[INFO] | \- org.jodd:jodd-core:jar:3.5:compile
[INFO] +- org.jsoup:jsoup:jar:1.7.3:compile
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.2.2:compile
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.2.2:compile
[INFO] | \- commons-codec:commons-codec:jar:1.6:compile
[INFO] +- com.github.fge:uri-template:jar:0.9:compile
[INFO] | +- com.github.fge:msg-simple:jar:1.1:compile
[INFO] | | \- com.github.fge:btf:jar:1.2:compile
[INFO] | +- com.google.guava:guava:jar:16.0.1:compile
[INFO] | \- com.google.code.findbugs:jsr305:jar:2.0.1:compile
[INFO] +- org.openrdf.sesame:sesame-rio-api:jar:2.7.12:compile
[INFO] +- org.openrdf.sesame:sesame-rio-datatypes:jar:2.7.12:compile
[INFO] +- org.openrdf.sesame:sesame-rio-turtle:jar:2.7.12:compile
[INFO] +- org.openrdf.sesame:sesame-rio-ntriples:jar:2.7.12:compile
[INFO] +- org.openrdf.sesame:sesame-rio-n3:pom:2.7.12:compile
[INFO] +- org.openrdf.sesame:sesame-rio:pom:2.7.12:compile
[INFO] \- commons-cli:commons-cli:jar:1.2:compile
Maven includes a dependency with this scope in the runtime and test classpaths, but not the compile classpath. This scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases. This scope is not transitive.
starting from your considerations I found a solution for building a fat-jar of my application including Sesame. I had to use another maven plugin, which is shade and the configuration for my build is as follows:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>my.package.main.MyMain</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
The most interesting parts are:
Hope it helps. Cheers, Riccardo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With