2017-02-16 4 views
0

Systeminformationより大きくレポにファイルを追加することができません:1.5メガバイト

アプリケーション情報 アプリケーション名RDF4Jサーバ
バージョン2.2
ランタイム情報:
オペレーティングシステムのLinux 3.10.0-327.36.2。 el7.x86_64(AMD64)
Javaランタイムオラクル・コーポレーションOpenJDKの64ビットサーバーVM(1.8.0_102)

私はRDF4JサーバでリポジトリにNTriplesを書きたいRDF4J APIを使用しています。 データはファイル内にあり、ワークベンチを使用してファイルをアップロードできますが、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で失敗するのはなぜですか?
ファイルがテキスト/プレーンとして作成されるのはなぜですか? ?
ファイルが.nt拡張として作成されていると私は

#MIME type          Extensions 
application/n-triples       nt 

次は/etc/mime.typesに追加されました -

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

すでにSPARQLRepositoryの代わりにHTTPRepositoryを試しましたか?多分これがあなたの問題を解決するでしょう。

+0

おい...それだった!どうもありがとう。 – Michael

+0

しかし、まだ奇妙な例外です。 – Michael

+0

いつも幸せに助けてください:Dはい非常に奇妙なことに、https://github.com/eclipse/rdf4j/issuesで問題を作成する必要があります。そして、rdf4jの人がそれを見ていきます。 – ChristophE