我已經使用Spring和Apache HTTPComponents編寫了一個簡單的Java HTTP客戶端應用程序。當我運行它,它失敗例外:爲什麼HttpClient需要httpasyncclient?
java.lang.NoClassDefFoundError: org/apache/http/nio/client/HttpAsyncClient
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at my.package.<init>(MyClientTest.java:60)
該行的代碼是:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.1.2</version>
<scope>test</scope>
</dependency>
:
private final RestTemplate restTemplate =
new RestTemplate(new HttpComponentsAsyncClientHttpRequestFactory());
我可以添加依賴於我的生成治癒這種
但爲什麼我需要這樣做?我沒有做任何明確異步的事情。我認爲Maven應該自動引入必要的依賴關係。
@KlausGroenbaek作爲企業編碼員,我在這件事上沒有多少選擇。但它不會造成我們任何重大問題。 – slim
對密切的選民 - 我添加了這個問答,因爲我花了半天的時間找到問題,並希望SO有答案。很多人在其他地方也問過類似的問題,只是得到了答案,他們應該在類路徑中獲得異步jar。我懷疑在大多數情況下,他們並不真的需要它。 – slim
您可以發佈整個堆棧跟蹤,當發生此問題時,您將加載哪個類。 –