2014-02-05

GWT 與 HttpClient 的版本衝突

標題好難下,不過說穿了其實根本也沒什麼。 [死]

故事是這樣的:在一個既有的 GWT project 中想在 server side 用 HttpClient 抓 web API 的東西,抓了 4.2.3 版回來,想說先寫個 application 來測,結果一直炸 java.lang.NoSuchMethodError,明明我只跑最簡單的範例阿阿阿阿混蛋:

public static void main(String[] args) throws Exception {
    System.out.println(
        Request.Get("http://localhost:8080/BSS.html")
        .execute().returnContent()
    );
}

狗了一下好像沒人有我這樣的問題,該不會只是因為我沒用 Maven 吧 [胡思亂想ing]。於是先弄個乾淨的 Java project……. 沒問題;那在 GWT project 下用 JSP / Servlet 執行 HttpClient 碼…… 也沒問題 [死]。

停下來想了一下,該不會 GWT 本來就有用 HttpClient?GWT RPC 底下用 HttpClient 好像完全合情合理,只是 HttpClient 的版本不同結果就哭哭了?結果還果真如此,上面那個例子中找不到的 setConfig()HttpRequestBase,是用 gwt-div.jar 裡頭的版本。

基本上在不想搞懂 classloader 以及 Eclipse 設定之類 blahblah 的討人厭東西,這個 issue 就到這邊為止了,反正不用要 application 就沒事了 [毆飛]

只是我常常遇到官方 example 跑不起來,這到底是怎樣的人品阿阿阿阿 [淚奔]