2016-07-21 3 views
0

OSXマシン(10.11.6)でOrientDB 2.2.5でETLローダーを動作させようとしましたが、入力JSONファイルでFileNotFoundExceptionが発生し続けます。ETLローダーがFileNotFoundExceptionをスローするエラー:jsonファイルをロード中にエラーが発生しました

post.csvとpost.jsonファイルのチュートリアルで確認できるexampleがあります。私はパスを削除するように修正しました。それらは自分自身のパス構造とよく一致していないからです。ここで

は私のpost.csvです:

id,title 
10,NoSQL movement 
20,New Orientdb 

post.jsonファイル:

​​

私はorientdb-コミュニティ-2.2.4がある場所に設定した環境変数ORIENTDB_HOMEを持っています$ ORIENTDB_HOME/binは私のパスにあります。

私は次のように入力した場合:

$ oetl.sh post.json 

出力はこれです:

OrientDB etl v.2.2.4 (build [email protected]; 2016-07-08 12:30:59+0000) www.orientdb.com 
Exception in thread "main" com.orientechnologies.orient.core.exception.OConfigurationException: Error on loading config file: post.json 
    at com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:131) 
    at com.orientechnologies.orient.etl.OETLProcessor.main(OETLProcessor.java:108) 
Caused by: java.io.FileNotFoundException: post.json (No such file or directory) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at com.orientechnologies.common.io.OIOUtils.readFileAsString(OIOUtils.java:140) 
    at com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:120) 
    ... 1 more 

私は右の修正が何であるかわからないんだけど...私の問題は別のpreviously asked questionに似ているようです、しかし、私はどのパスにもスペースがないので、その修正は私のためには機能しませんでした。私は設定ファイルで絶対パスを設定しようとしましたが、それは何も変更されていません。

私のposts.jsonとposts.csvファイルがあるディレクトリからoetl.shを実行していますが、posts.jsonが見つからないようです。

更新:両方のファイル(posts.json、posts.csv)が同じディレクトリにコロケートされています。私はoetl.shとoetl.sh posts.jsonの両方を実行しようとしましたが、例外は起こり続けます。私もposts.jsonを編集しようとしました。そのため、絶対パスも完全に含まれており、結果は変わりません。

私はそれはおそらくJavaの設定の問題のいくつかの種類だと思うが、私はJavaで比較的新しいので、いくつかの環境変数や何かを見逃している可能性がありますか?

+0

あなたのpost.jsonはどこにありますか?問題は間違いなく例外の通りどこかにあります。 –

+0

絶対パスで試してください(例:/User/myname/adirectory/input.csv)。 –

答えて

0

私はそれがうまくいっていると思います...アーカイブの目的で答えを加えてください。

PATHにorientdb-community-2.2.4/binディレクトリがあり、post.jsonとpost.csvを含むディレクトリから実行しようとしました。

oetl.shスクリプトはスクリプトの場所に作業ディレクトリを変更することをまず最初に:

だから、
#!/bin/sh 
# 
# Copyright (c) 2014 Luca Garulli 
# 

#set current working directory 
cd `dirname $0` 

... 

、oetl.shはそのむしろビン作業ディレクトリ$ ORIENTDB_HOME /を使用して、実際のJavaコードを実行することユーザーのシェルからの現在の作業ディレクトリよりも優先されます。つまり、post.jsonファイルを絶対パスでコマンドラインに指定する必要があります。また、post.jsonファイル内にリストされているpost.csvファイルも絶対パスが必要です。

私はcd dirname $0行をコメントすることができ、スクリプトはうまく動作するので、その行の値が本当にスクリプト内にあるのか分かりません。/shrug

関連する問題