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



我正在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 类型的请求

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

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

这是

由于您使用.jar。如果您检查QuickBooks SDK,您可能会看到有一些 jar 的名称后跟"具有依赖项"。

例如ipp-v3-java-devkit-2.3.2-jar-with-dependencies.jar .如果 this 和没有依赖项的 jar(在本例中为 ipp-v3-java-devkit-2.3.2.jar)同时存在,则可能会收到上述错误。

从类路径中删除后者,您应该很高兴。

相关内容

最新更新