2016-08-05 55 views
0

我無法使ETL導入程序正常工作。OrientDB ETL - IllegalAccessError異常

我使用的配置文件是以下

{ 
    "config": { 
    "log": "debug" 
    }, 
    "begin": [], 
    "source": { 
    "file": { 
     "path": "/mnt/shares/Sites/store.csv"  
    } 
    }, 
    "extractor": { 
    "csv" : { 
     "ignoreEmptyLines": true 
    } 
    }, 
    "transformers": [ 
    { 
     "vertex": { 
     "class": "Store" , 
     "skipDuplicates": true 
     } 
    } 
    ], 
    "loader": { 
    "orientdb": { 
     "dbURL": "plocal:/usr/local/src/orientdb-community-2.2.6/databases/my_database_name", 
     "dbUser": "myuser", 
     "dbPassword": "mypass", 
     "dbAutoCreate": false, 
     "tx": false, 
     "batchCommit": 1000, 
     "wal" : false 
    } 
    }, 
    "end": [] 
} 

,我得到的錯誤是:

Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.orientechnologies.common.exception.OException.(Ljava/lang/String;Ljava/lang/Throwable;)V from class com.orientechnologies.orient.etl.OETLProcessor at com.orientechnologies.orient.etl.OETLProcessor.parseConfigAndParameters(OETLProcessor.java:136) at com.orientechnologies.orient.etl.OETLProcessor.main(OETLProcessor.java:113)

我甚至有相同的錯誤,如果我把配置文件只與單獨的「配置」條目...

任何人都有關於該主題的一些想法?

UPDATE: 的錯誤似乎在OETLProcessor.java在下面的行拋出:

 final OTransformer tr = factory.getTransformer(name); 

回答

0

重試後我發現問題: 由於某種原因,我有2個不同的.jar版本,顯然使用的是錯誤的。 我有 - ORIENTDB_HOME/LIB/orientdb-ETL-2.1.3.jar - ORIENTDB_HOME/LIB/orientdb-ETL-2.2.6.jar

我剛剛更名爲2.1.3之一orientdb-etl- 2.1.3.jarUNUSED

事情開始奏效。

接下來的問題是我無法使用root帳戶訪問(在github問題上存在明確的動機,但我無法再次找到它......),所以我創建了一個新的管理員帳戶,並用它來代替。

所以最終它的工作。

0

我試圖導入該CSV文件中

storeid,name 
1,store1 
2,store2 
3,store3 

與此JSON

{ 
     "config": { 
     "log": "debug" 
     }, 
     "begin": [], 
     "source": { 
     "file": { 
      "path": "myPath/Store.csv"  
     } 
     }, 
     "extractor": { 
     "csv" : { 
      "separator": ",", 
      "ignoreEmptyLines": true 
     } 
     }, 
     "transformers": [ 
     { 
      "vertex": { 
      "class": "Store" , 
      "skipDuplicates": true 
      } 
     } 
     ], 
     "loader": { 
     "orientdb": { 
      "dbURL": "plocal:myPath/Store", 
      "dbUser": "admin", 
      "dbPassword": "admin", 
      "dbAutoCreate": false, 
      "tx": false, 
      "batchCommit": 1000, 
      "wal" : false 
     } 
     }, 
     "end": [] 
    } 

它爲我工作。

enter code here

希望它能幫助。

+0

一些問題: 您是否使用源文件和dbURL的相對路徑? 服務器正在運行? (我讀過一個人說,與plocal的服務器不應該運行) 我開始認爲這是有關環境變量,或類似的東西 – Stormsson

+0

我用相對路徑和服務器停止 –

+0

沒什麼,我改變了路徑相對於執行目錄,但沒有任何改變...我注意到,由於某種原因,我有2個不同的.jar版本的etl模塊 它看起來在讀取配置文件之前拋出異常 – Stormsson