QuickBooks API抛出异常com.intuit.apache.http.HttpRequest

时间:2014-01-15 07:13:02

标签: api quickbooks

我在java web项目中使用QuickBooks Javav3SDK2.0.3并尝试获取下面给出的客户列表,但是我得到以下异常。 API在传递HttpServletRequest时需要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类型的请求

3 个答案:

答案 0 :(得分:0)

我使用Javav3SDK2.0.3运行你的代码,它对我来说很好。您确定您使用的每个对象都来自同一个SDK吗? (2.0.3)。我的猜测是,由于某种sdk版本不匹配,在后台调用OAuthAuthorizer上的授权方法传入HTTPServeletRequest而不是com.intuit.apache.http.HttpRequest。我在旧的quickbooks java sdk上找不到任何文档,所以我可能错了。

答案 1 :(得分:0)

我通过在另一个系统(CentOS)上安装MyEclipse 11(版本:2013 SR1)解决了问题,而之前的系统是Linux Fedora。虽然我仍在使用jboss 7,但它现在可以使用了。我不确切知道它是如何工作的,所以没有线索可用。

答案 2 :(得分:0)

这是由于您使用的.jar。如果您检查QuickBooks SDK,您可能会看到有一些名称后面带有依赖关系&#34;的罐子。

例如ipp-v3-java-devkit-2.3.2-jar-with-dependencies.jar。如果这个和没有依赖关系的jar(在这种情况下是ipp-v3-java-devkit-2.3.2.jar)同时存在,则可能会出现上述错误。

从类路径中删除后者,你应该好好去。