我在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类型的请求
答案 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
)同时存在,则可能会出现上述错误。
从类路径中删除后者,你应该好好去。