0
我想加載TinkerGraph.FileType.GRAPHML類型保存的tinkerpop數據庫。Tinkerpop藍圖GraphFactory.open()異常
這是我的代碼:
public Graph getDatabase(String path) {
org.apache.commons.configuration.Configuration conf = new BaseConfiguration();
conf.setProperty("blueprints.tg.directory", path);
conf.setProperty("blueprints.tg.file-type", "GRAPHML");
conf.setProperty("blueprints.graph", "com.tinkerpop.blueprints.impls.tg.TinkerGraph");
return GraphFactory.open(conf);
}
此代碼給我了java.lang.RuntimeException:GraphFactory無法實例化這個圖實現[com.tinkerpop.blueprints.impls.tg.TinkerGraph。
的原因是數字格式例外
Caused by: java.lang.NumberFormatException: For input string: "2306416072"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.valueOf(Integer.java:582)
at com.tinkerpop.blueprints.util.io.graphml.GraphMLReader.typeCastValue(GraphMLReader.java:313)
at com.tinkerpop.blueprints.util.io.graphml.GraphMLReader.inputGraph(GraphMLReader.java:252)
at com.tinkerpop.blueprints.util.io.graphml.GraphMLReader.inputGraph(GraphMLReader.java:116)
at com.tinkerpop.blueprints.impls.tg.TinkerStorageFactory$GraphMLTinkerStorage.loadGraphData(TinkerStorageFactory.java:187)
at com.tinkerpop.blueprints.impls.tg.TinkerStorageFactory$AbstractSeparateTinkerStorage.load(TinkerStorageFactory.java:94)
at com.tinkerpop.blueprints.impls.tg.TinkerGraph.init(TinkerGraph.java:134)
... 51 more
我搜索XML文件中的 「2306416072」(數據庫)。 這是一個物業編號< -data鍵=「USER_ID」 - > 2306416072 < - /數據 - >
不知道爲什麼我得到的數字格式例外。我在導航類GraphMLReader,這是方法
private static Object typeCastValue(String key, String value, Map<String, String> keyTypes) {
String type = keyTypes.get(key);
if (null == type || type.equals(GraphMLTokens.STRING))
return value;
else if (type.equals(GraphMLTokens.FLOAT))
return Float.valueOf(value);
else if (type.equals(GraphMLTokens.INT))
return Integer.valueOf(value);
else if (type.equals(GraphMLTokens.DOUBLE))
return Double.valueOf(value);
else if (type.equals(GraphMLTokens.BOOLEAN))
return Boolean.valueOf(value);
else if (type.equals(GraphMLTokens.LONG))
return Long.valueOf(value);
else
return value;
}
謝謝你牛!也許我找到了問題。類型定義! 剛將int更改爲long,我得到另一個異常,但是由於其他原因!在com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:598) \t com.sun.org.apache.xerces.internal處解析字符「&#。 –
0pipe0
」的問題。 impl.XMLStreamReaderImpl.getElementText(XMLStreamReaderImpl.java:862) \t在com.tinkerpop.blueprints.util.io.graphml.GraphMLReader.inputGraph(GraphMLReader.java:243) \t ... 55多個 Unicode的問題?& #xd83d; – 0pipe0