无法将文件添加到大于 1.5 MB 的 repo
Not able to add file to repo larger than 1.5 MB
系统信息:
申请信息
应用程序名称 RDF4J-server
版本 2.2
运行时信息:
操作系统 Linux 3.10.0-327.36.2.el7.x86_64 (amd64)
Java 运行时 Oracle Corporation OpenJDK 64 位服务器 VM (1.8.0_102)
我正在使用 RDF4J api 想要将 NTriples 写入 RDF4J 服务器中的存储库。
数据在文件中,我可以使用 workbench 上传文件,但使用 api 会引发异常。仅当文件大小大于 1.5MB 时才会出现这种情况。
如果我使用 curl,它也适用于大于 1.5MB 的文件。
curl -X POST -H "Content-type: text/plain" --data-binary @central-ReadOnly.nt http://localhost:8080/rdf4j-server/repositories/testOfUpload/statements
那么问题来了。如果文件大于 1.5MB,为什么 mimetype 失败?
为什么文件创建为 text/plain; ?
该文件已创建为 .nt 扩展名,我在 /etc/mime 中添加了以下内容
#MIME type Extensions
application/n-triples nt
-
org.eclipse.rdf4j.query.UpdateExecutionException: Unsupported MIME type: application/x-www-form-urlencoded
Message!!error executing transaction
org.eclipse.rdf4j.repository.RepositoryException: error executing transaction
at org.eclipse.rdf4j.repository.sparql.SPARQLConnection.commit(SPARQLConnection.java:438)
at dk.skat.rdfconsolidation.Application.writeStatementsToRepository(Application.java:215)
at dk.skat.rdfconsolidation.Application.run(Application.java:72)
at dk.skat.rdfconsolidation.Application.main(Application.java:34)
代码:
protected void writeStatementsToRepository(String endpoint, String fileName) throws IOException {
File inputfile = new File(fileName);
Repository repo = new SPARQLRepository(endpoint);
repo.initialize();
try (RepositoryConnection con = repo.getConnection()) {
con.begin();
try {
con.add(inputfile, null, RDFFormat.NTRIPLES);
con.commit();
} catch (RepositoryException e) {
System.out.println("ERROR!!" + e.getCause());
System.out.println("Message!!" + e.getMessage());
e.printStackTrace();
System.out.println("endpoint" + endpoint);
System.out.println("inputfile" + inputfile);
System.out.println("fileName" + fileName);
con.rollback();
}
}
}
您是否已经尝试过使用 HTTPRepository 而不是 SPARQLRepository?也许这可以为您解决问题。
系统信息:
申请信息
应用程序名称 RDF4J-server
版本 2.2
运行时信息:
操作系统 Linux 3.10.0-327.36.2.el7.x86_64 (amd64)
Java 运行时 Oracle Corporation OpenJDK 64 位服务器 VM (1.8.0_102)
我正在使用 RDF4J api 想要将 NTriples 写入 RDF4J 服务器中的存储库。
数据在文件中,我可以使用 workbench 上传文件,但使用 api 会引发异常。仅当文件大小大于 1.5MB 时才会出现这种情况。
如果我使用 curl,它也适用于大于 1.5MB 的文件。
curl -X POST -H "Content-type: text/plain" --data-binary @central-ReadOnly.nt http://localhost:8080/rdf4j-server/repositories/testOfUpload/statements
那么问题来了。如果文件大于 1.5MB,为什么 mimetype 失败?
为什么文件创建为 text/plain; ?
该文件已创建为 .nt 扩展名,我在 /etc/mime 中添加了以下内容
#MIME type Extensions
application/n-triples nt
-
org.eclipse.rdf4j.query.UpdateExecutionException: Unsupported MIME type: application/x-www-form-urlencoded
Message!!error executing transaction
org.eclipse.rdf4j.repository.RepositoryException: error executing transaction
at org.eclipse.rdf4j.repository.sparql.SPARQLConnection.commit(SPARQLConnection.java:438)
at dk.skat.rdfconsolidation.Application.writeStatementsToRepository(Application.java:215)
at dk.skat.rdfconsolidation.Application.run(Application.java:72)
at dk.skat.rdfconsolidation.Application.main(Application.java:34)
代码:
protected void writeStatementsToRepository(String endpoint, String fileName) throws IOException {
File inputfile = new File(fileName);
Repository repo = new SPARQLRepository(endpoint);
repo.initialize();
try (RepositoryConnection con = repo.getConnection()) {
con.begin();
try {
con.add(inputfile, null, RDFFormat.NTRIPLES);
con.commit();
} catch (RepositoryException e) {
System.out.println("ERROR!!" + e.getCause());
System.out.println("Message!!" + e.getMessage());
e.printStackTrace();
System.out.println("endpoint" + endpoint);
System.out.println("inputfile" + inputfile);
System.out.println("fileName" + fileName);
con.rollback();
}
}
}
您是否已经尝试过使用 HTTPRepository 而不是 SPARQLRepository?也许这可以为您解决问题。