无法将文件添加到大于1.5 MB的repo

时间:2017-02-16 07:26:58

标签: java file-io mime-types mime rdf4j

Systeminformation:

申请信息 应用名称RDF4J-server
版本2.2
运行时信息:
操作系统Linux 3.10.0-327.36.2.el7.x86_64(amd64)
Java Runtime Oracle Corporation OpenJDK 64位服务器VM(1.8.0_102)

我正在使用RDF4J api想要将NTriples写入RDF4J服务器中的存储库。 数据在文件中,我可以使用工作台上传文件但是使用api会引发异常。仅当filesize大于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.types中添加了以下内容

#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();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您是否已经尝试过HTTPRepository而不是SPARQLRepository?也许这解决了你的问题。