0

我正在研究eclipse中的一個簡單的java應用程序,它將在btc-e.com上爲我做一筆交易。我剛剛寫了一個交易方法,這是一堆編譯時錯誤。我使用Apache httpcore和httpclient。我似乎無法弄清楚爲什麼它不起作用。我非常感謝任何幫助;我現在很困惑。 這些是我包括在構建路徑的JAR文件:java btc貿易應用程序編譯時錯誤(HTTP組件)

  • 的HttpCore-4.4.1.jar
  • 的HttpClient-4.5.jar

這是代碼:

import java.io.IOException; 
import java.io.UnsupportedEncodingException; 
import java.util.Calendar; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 

import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.*; 
import org.apache.http.impl.client.DefaultHttpClient; 



public class Trade { 


public static void buy(double rate, double amount) throws ClientProtocolException, IOException{ 

    Calendar now = Calendar.getInstance(); 
    long nonce = (now.getTimeInMillis()/1000); 
    String api_key= "00000000-00000000-00000000-00000000-00000000"; 
    String api_secret = "---------------------------------------"; 


    //Create a new HttpClient and Post Header 
    HttpClient client = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("https://btc-e.com/tapi"); 

    // Add data 
    HashMap params = new HashMap(); 
    params.put("method", "Trade"); 
    params.put("pair", "btc_usd"); 
    params.put("type", "buy"); 
    params.put("rate", rate); 
    params.put("amount", amount); 
    params.put("nonce", nonce); 


    HashMap headers = new HashMap(); 
    headers.put("Contnent-type", "x-www-form-urlencoded"); 
    headers.put("key", api_key); 
    headers.put("sign", api_secret); 

    try { 
     httppost.setEntity(new UrlEncodedFormEntity((List<NameValuePair>) params)); 
     // Execute HTTP Post Request 
     HttpResponse response = client.execute(httppost); 





    } catch (UnsupportedEncodingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 







} 

這裏是編譯時錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.http.impl.client.CloseableHttpClient.(CloseableHttpClient.java:58) at org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:287) at org.apache.http.impl.client.DefaultHttpClient.(DefaultHttpClient.java:147) at Trade.buy(Trade.java:31) at Main.main(Main.java:10) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 5 more

回答

0

您還需要包含Apache Commons Logging,看起來像這是httpclient的傳遞依賴項。從長遠來看,您可能希望使用依賴管理工具(如Maven!)來處理這類事情 - 以及處理這種依賴性問題,它將使您的構建更穩定並且可以重複使用,而無需手動添加JAR。