2014-01-15 119 views
0

我在一個java web項目中使用QuickBooks Javav3SDK2.0.3並試圖獲取下面給出的客戶列表,但是我得到了下面的異常。 API在傳遞HttpServletRequest的同時期望com.intuit.apache.http.HttpRequest類型的請求。QuickBooks API拋出異常com.intuit.apache.http.HttpRequest

代碼:

OAuthAuthorizer oauth = new OAuthAuthorizer(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); 

     Context context = new Context(oauth, APP_TOKEN, ServiceType.QBO, COMPANY_ID); 

     DataService service = new DataService(context); 

     Customer customer = new Customer(); 
     List<Customer> customers = service.findAll(customer); 

     Iterator itr = customers.iterator(); 

     while (itr.hasNext()) 
     { 
      Customer customer2 = (Customer) itr.next(); 
      String customerName = customer2.getFullyQualifiedName(); 
      System.out.println(customerName); 
     } 

例外:

java.lang.IllegalArgumentException異常:該消費者期望類型com.intuit.apache.http.HttpRequest

回答

0

我用跑你的代碼的請求Javav3SDK2.0.3,它爲我工作得很好。你確定你使用的每個對象都來自同一個SDK嗎? (2.0.3)。我的猜測是任何調用OAuthAuthorizer的授權方法在幕後傳遞HTTPServeletRequest而不是com.intuit.apache.http.HttpRequest由於某種類型的sdk版本不匹配。我無法找到舊的快速書籍java sdk上的任何文檔,所以我可能是錯的。

+0

感謝您的時間Navey。其實我有一個非常簡單的java web項目,它只包含Javav3SDK2.0.3罐子。所以所有的類都使用相同的SDK。 –

0

我通過在另一個系統(CentOS)上安裝MyEclipse 11(版本:2013 SR1)來解決問題,而以前的系統是Linux Fedora。雖然我仍然在使用jboss 7,但它現在起作用了。我不知道它是如何工作的,所以沒有線索可用。

0

這是由於您正在使用的.jar。如果您檢查QuickBooks SDK,您可能會看到有一些名稱後跟「帶有依賴關係」的罐子。

例如ipp-v3-java-devkit-2.3.2-jar-with-dependencies.jar。如果同時出現這個和出現依賴關係的jar(本例中爲ipp-v3-java-devkit-2.3.2.jar),則可能會出現上述錯誤。

從班級路徑中刪除後者,你應該很好去。