0
votes

In short, I'm trying to allow one of our applications (Within an Axis2 container) to communicate with Quickbooks that's set up on my machine. So far my setup is as follows:

1- I created a company file on my local machine 2- Used the supplied wsdl file to generate a server-side skeleton (using Axis2's WSDL2JAVA) 3- Deployed my new web service on a foreign machine 4- Created a .qwc file which contains the information that Web Connector needs to connect to my web service (Making sure to use the same user that owns the company file)

Now on a scheduled basis (Every 1 minute as configured in the .qwc file), the web connector successfully calls my web service, and as I expected, it's failing to parse the response since it contains test data that do not abide to the QbXML standard. The error I'm getting in Web Connector is as follows:

Version:
Not provided by service

Message:
Error encountered during version check.

Description:
QBWC1046: Application sent incorrect syntax return value for clientVersion(). See QWCLog for details. Error message: <Called clientVersion() but application returned following: (Client version response). This return value is not acceptable because it needs to start with E:, W: or O:>. Update cannot continue.

This is pretty much expected. At least I now know that QuickBooks is successfully calling my Axis2 web service.

So my next step is to build QbXML requests that can be understood by QuickBooks, and then parse the QbXML responses. My questions at this point are 1- Do I have to do this tedious work (Building and parsing QbXml requests/responses) by myself? 2- Does QuickBooks' Java API allow me to somehow deal with objects that I can then easily serialize to QbXML? Or is this API only used to integrate a Desktop application?

Thanks a ton for anyone's help.

1

1 Answers

1
votes

Do I have to do this tedious work (Building and parsing QbXml requests/responses) by myself?

Yes.

2- Does QuickBooks' Java API allow me to somehow deal with objects that I can then easily serialize to QbXML?

This is what JAXB, Caster, JIXB, etc. are for. You can easily generate JAXB/Castor classes from the XSDs Intuit provides if you want to.

Or is this API only used to integrate a Desktop application?

The Web Connector is used to integrate web applications with desktop Windows versions of QuickBooks.