簡體   English   中英

Neo4j Java Rest綁定:NoClassDefFoundError

[英]Neo4j Java Rest Binding: NoClassDefFoundError

我有一個neo4j-rest-graphdb-1.8-SNAPSHOT.jar的新版本。 但是我馬上就要遇到麻煩了。

我已經運行了Neo4j的基本/默認安裝,並配置了有效的圖形存儲:

Neo4j版本

圖形數據庫內核1.8.M05

OS

Ubuntu 12.04 LTS

Java版本

“ 1.6.0_24” OpenJDK運行時環境(IcedTea6 1.11.1)(6b24-1.11.1-4ubuntu3)OpenJDK 64位服務器VM(內部版本20.0-b12,混合模式)

卷曲請求表明一切運行良好:

$ curl http://localhost:7474/db/data/ -i
HTTP/1.1 200 OK
Content-Length: 809
Content-Encoding: UTF-8
Content-Type: application/json
Access-Control-Allow-Origin: *
Server: Jetty(6.1.25)

{
  "extensions" : {
    "CypherPlugin" : {
      "execute_query" :     "http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query"
    },
    "GremlinPlugin" : {
      "execute_script" :     "http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script"
    }
  },
  "node" : "http://localhost:7474/db/data/node",
  "reference_node" : "http://localhost:7474/db/data/node/0",
  "node_index" : "http://localhost:7474/db/data/index/node",
  "relationship_index" : "http://localhost:7474/db/data/index/relationship",
  "extensions_info" : "http://localhost:7474/db/data/ext",
  "relationship_types" : "http://localhost:7474/db/data/relationship/types",
  "batch" : "http://localhost:7474/db/data/batch",
  "cypher" : "http://localhost:7474/db/data/cypher",
  "neo4j_version" : "1.8.M05-1-ge9cdca9"

但是,嘗試以下行:

GraphDatabaseService graph = new RestGraphDatabase(“ http:// localhost:7474 / db / data /”);

...產生異常:

Exception in thread "main" java.lang.NoClassDefFoundError:     javax/ws/rs/core/Response$StatusType
    at org.neo4j.rest.graphdb.RestAPIFacade.<init>(RestAPIFacade.java:265)
    at org.neo4j.rest.graphdb.RestGraphDatabase.<init>(RestGraphDatabase.java:44)
    at com.tester.api.Neo4j.importer(Neo4j.java:185)
    at com.tester.api.Neo4j.main(Neo4j.java:97)
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.core.Response$StatusType
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 4 more

這看起來像缺少依賴項。 您是否已確保通過maven包含所有依賴項,如https://github.com/neo4j/java-rest-binding/blob/master/pom.xml中所述 您可以從源代碼構建項目,並通過執行以下操作來獲得項目

mvn dependency:copy-dependencies

/彼得

好吧,我認為一切最終都對我產生了影響:

從頂部:

  1. 從Maven 2升級到Maven 3
  2. 刪除〜/ .m2 /存儲庫以刪除任何以前下載的依賴項
  3. 然后,在java-rest-binding git repo中,我運行了mvn dependency:copy-dependencies以獲取所有依賴項的副本,然后將它們(target / dependency文件夾的內容)添加到我的構建路徑中(感謝Peter)
  4. 在Eclipse中使用源中的其余程序包(將/ main / java / org / neo4j復制到我項目的'org'文件夾中)給我帶來了Neo4j缺少“批處理請求”類型程序包的問題
  5. 因此,然后我運行mvn package以獲取另一個新的/克隆的/簽出的java-rest-binding git repo,並將生成的.jar( neo4j-rest-graphdb-1.8-SNAPSHOT.jar )復制到項目的lib中(以及所有依賴

我已經進行了一些初步測試,現在似乎可以使用了!

如果上述過程顯示出我對Maven的天真,並且您知道避免將來出現此類問題的簡明指南,請與我們分享!

謝謝!

我遇到了同樣的問題,發現我沒有球衣。 試圖獲取所有依賴關系,但沒有得到這個罐子。 因此解決方案可以是..只需下載jersey-bundle-1.13-b01.jar。

PS:這可能不是解決它的最佳方法,因為可能存在很多依賴關系,但是在這種特定情況下,只有球衣丟失了,所以它可以這樣工作:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM