2014-11-06 55 views
8

出於某種原因,我無法導入org.apache.http.entity.ContentType。我已經加入Apache的HTTP 4.3.3:org.apache.http.entity.ContentType不在Apache中了嗎?

  • 客戶
  • 核心
  • 公地編解碼器
  • HttpClient的緩存
  • 共享記錄
  • httpmime
  • 流利-HC

本來我沒有impor ■所有的這些,但由於問題仍然存在,我所做的這一切,現在,我已經清理我的項目,重建它

import org.apache.http.entity.mime.MultipartEntityBuilder;工作

import org.apache.http.HttpEntity;也適用

import org.apache.http.entity.ContentType;完全不

我使用的是發現機器人工作室(的IntelliJ),所以我不知道構建路徑的答案是有幫助這裏

我也試圖通過鏈接的Gradle進口,但我遇到了不同的錯誤,需要更多的控制權的jar文件自己

回答

13

org.apache.http.entity.ContentType被在org.apache.httpcomponents:httpcore:4.3.x模塊中。但是org.apache.http.HttpEntity也是如此。你找到的而不是另一個的事實很可能意味着它們沒有被從v4.3.x JAR中取出。 Apache HttpCommponents項目最近舉辦了很多類。因此,它可能會找到HttpEntityhttpcore的舊版/不同版本中,該版本以某種方式被拉取;版本沒有ContentType類。您需要驗證它在哪裏找到HttpEntity。有幾種方法可以查看從哪裏獲取依賴關係。

選項1 一個最簡單的方法是把你的光標移動到類(在import語句或變量聲明)和打開快速文檔(按Ctrl + Q^J)。在文件對話框的頂部,它會顯示在類中找到的依賴:

enter image description here

選項2 此選項會告訴你,如果你有一個類的多個實例的類路徑。打開轉到類對話框(按Ctrl +ñØ),然後輸入類名(你可以完全限定與否。你甚至可以單獨輸入名稱並使用駱駝案例搜索)。在找到的類的列表中,右邊將是類被找到的地方。 enter image description here 右邊是類從何而來的依賴關係。如果它顯示不止一次,則表示它在不同的罐子中被多次拉出。如果另一個依賴關係將一個不同版本的httpcore作爲傳遞依賴項拉動,則會發生這種情況(使用構建工具時)。所以你需要解決這個問題。注意我的屏幕截圖我有兩個不同版本的org.springframework.http.HttpEntity類。一個來自Spring 3.2.10和一個來自4.0.6。在這種特殊情況下,這是因爲我的項目中有一個基於Spring 3.2.x的模塊和一個單獨的Spring 4.0.x模塊。所以我可以,因爲它們不會發生衝突,因爲這些是獨立的模塊。但在大多數情況下,這是值得關注的。

選項3 您還可以展開,並期待在外部庫在項目工具窗口節點,看是否有依賴性拉進了兩次。

目前尚不清楚您的項目是如何配置的。你提到了gradle,但它看起來更像是一個想法。如果您使用的是maven或gradle,並且在您的pom或build文件中聲明瞭正確的httpcore依賴項,請確保您在適當的生成工具窗口上執行重新導入enter image description here,以便它可以正確同步,並且該模塊將添加到項目的依賴項中。然後使用以上信息來查看是否有多個版本的httpcore模塊被拉入。

+0

好的..謝謝。 – vijay 2015-10-12 16:24:29

0

我有同樣的問題。您必須確保您使用的是jdk 1.7而不是1.6。

0

下載httpcore-4.3.2 jar並添加到lib文件夾。