2012-09-25 167 views
0

我一直在試圖創建一個能夠連接到網絡的Quickbooks連接器爲2012年的QuickBooks在Windows 7Web連接器錯誤「驗證失敗」

的實現是在節目指南明確說明的一個簡單的Web服務(http://developer.intuit.com/qbsdk-current/doc/pdf/qbwc_proguide.pdf )。

在authenticate方法中,我一直收到與「Authentication Failed」和「Object reference not set to Object of instance」相同的錯誤。我首先使用Eclipse在java中創建了示例Web服務。

問題在於驗證方法。

我還打開Web連接器的VERBOSE模式。

下面是完整的日誌

20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.ConnectToQB() : Connecting to QuickBooks... 

    20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.ConnectToQB() : Connected., Session started 

    20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.deleteFileIDValueFromQB() : Deleting FileID value from Company object for the ownerID = {57F3B9B1-86F1-4fcc-B1EE-566DE1813D10} 

    20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.deleteFileIDValueFromQB() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><DataExtDelRq requestID="1"><DataExtDel><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID><DataExtName>FileID</DataExtName><OtherDataExtType>Company</OtherDataExtType></DataExtDel></DataExtDelRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <DataExtDelRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"> 

    <DataExtDelRet> 

    <OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID> 

    <DataExtName>FileID</DataExtName> 

    <TimeDeleted>2012-09-24T20:41:25+05:30</TimeDeleted> 

    </DataExtDelRet> 

    </DataExtDelRs> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.DisconnectFromQB() : Session ended and connection closed 

    20120924.15:11:25 UTC : QBWebConnector.SOAPWebService.deleteFileIDValueFromQB() : Data extension FileID has been cleared from QuickBooks for owner id. 

    20120924.15:11:25 UTC : RemoveApp() : Application PratikWS has been removed. 

    20120924.15:11:29 UTC : QWCReader.ParseQWC() : Contents of QWC file: - 

    <QBWCXML> 

     <AppName>PratikWS</AppName> 

     <AppID></AppID> 

     <AppURL>http://localhost:8080/TestWS/services/TestHello?WSDL</AppURL> 

     <AppDescription>A short description for WCWebService1</AppDescription> 

     <AppSupport>http://localhost:8080</AppSupport> 

     <UserName>pratik</UserName> 

     <OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID> 

     <FileID>{90A44FB5-33D9-4815-AC85-BC87A7E7D1FB}</FileID> 

     <QBType>QBFS</QBType> 

     <Scheduler> 

     <RunEveryNMinutes>2</RunEveryNMinutes> 

     </Scheduler> 

    </QBWCXML> 

    20120924.15:11:29 UTC : QBWebConnector.WebServiceManager.ReadQWC(QWCReader QWC) : Parsing application configuration xml file to load its content to variables 

    20120924.15:11:30 UTC : QBWebConnector.RegistryManager.createRegKey() : Error creating registry key for appName = <> 

    20120924.15:11:30 UTC : QBWebConnector.RegistryManager.createRegKey() : Reason: Value cannot be null. 

    Parameter name: name 

    20120924.15:11:30 UTC : QBWebConnector.SOAPWebService.SerializeToRegistry() : Error saving PratikWS to Registry: Object reference not set to an instance of an object. 

    20120924.15:11:30 UTC : QBWebConnector.SOAPWebService.ConnectToQB() : Connecting to QuickBooks... 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.ConnectToQB() : Connected., Session started 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.AddToQuickBooks() : Application name = PratikWS 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.AddToQuickBooks() : Querying company file to find if owner/file id exists. 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDinQB() : Latest QBXML version supported = v11.0 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDinQB() : Querying QuickBooks for existance of owner/file id 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDinQB() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><DataExtDefQueryRq requestID="1"><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID></DataExtDefQueryRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDinQB() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <DataExtDefQueryRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"> 

    <DataExtDefRet> 

    <OwnerID>{57F3B9B1-86F1-4FCC-B1EE-566DE1813D10}</OwnerID> 

    <DataExtName>AppLock</DataExtName> 

    <DataExtType>STR255TYPE</DataExtType> 

    <AssignToObject>Company</AssignToObject> 

    </DataExtDefRet> 

    <DataExtDefRet> 

    <OwnerID>{57F3B9B1-86F1-4FCC-B1EE-566DE1813D10}</OwnerID> 

    <DataExtName>FileID</DataExtName> 

    <DataExtType>STR255TYPE</DataExtType> 

    <AssignToObject>Company</AssignToObject> 

    </DataExtDefRet> 

    </DataExtDefQueryRs> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDinQB() : Status message: Status OK 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.registerDataExtInQB() : Creating DataExtDef named AppLock assigned to Company object for the ownerID = {57F3B9B1-86F1-4fcc-B1EE-566DE1813D10} 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><DataExtDefAddRq requestID="1"><DataExtDefAdd><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID><DataExtName>AppLock</DataExtName><DataExtType>STR255TYPE</DataExtType><AssignToObject>Company</AssignToObject></DataExtDefAdd></DataExtDefAddRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.registerDataExtInQB() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <DataExtDefAddRs requestID="1" statusCode="3100" statusSeverity="Error" statusMessage="The name "AppLock" of the list element is already in use." /> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.registerDataExtInQB() : Data extension definition has been created in QuickBooks for owner id. 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.AddToQuickBooks() : Registered the AppLock to company file successfully. 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDValueinQB() : Latest QBXML version supported = v11.0 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDValueinQB() : Querying QuickBooks for existance of owner/file id 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDValueinQB() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><CompanyQueryRq requestID="1"><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID></CompanyQueryRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.findFileIDValueinQB() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <CompanyQueryRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"> 

    <CompanyRet> 

    <IsSampleCompany>false</IsSampleCompany> 

    <CompanyName>krazykoder</CompanyName> 

    <LegalCompanyName>krazykoder</LegalCompanyName> 

    <FirstMonthFiscalYear>January</FirstMonthFiscalYear> 

    <FirstMonthIncomeTaxYear>January</FirstMonthIncomeTaxYear> 

    <CompanyType>InformationTechnologyComputersSoftware</CompanyType> 

    <TaxForm>Form1040</TaxForm> 

    <SubscribedServices> 

    <Service> 

    <Name>QuickBooks Online Banking</Name> 

    <Domain>banking.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Online Billing</Name> 

    <Domain>billing.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Online Billing Level 1 Service</Name> 

    <Domain>qbob1.qbn</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Online Billing Level 2 Service</Name> 

    <Domain>qbob2.qbn</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Online Billing Payment Service</Name> 

    <Domain>qbobpay.qbn</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Bill Payment</Name> 

    <Domain>billpay.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Online Billing Paper Mailing Service</Name> 

    <Domain>qbobpaper.qbn</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Payroll Service</Name> 

    <Domain>payroll.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Basic Payroll Service</Name> 

    <Domain>payrollbsc.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Basic Disk Payroll Service</Name> 

    <Domain>payrollbscdisk.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Deluxe Payroll Service</Name> 

    <Domain>payrolldlx.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>QuickBooks Premier Payroll Service</Name> 

    <Domain>payrollprm.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>Basic Plus Federal</Name> 

    <Domain>basic_plus_fed.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>Basic Plus Federal and State</Name> 

    <Domain>basic_plus_fed_state.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>Basic Plus Direct Deposit</Name> 

    <Domain>basic_plus_dd.qb</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    <Service> 

    <Name>Merchant Account Service</Name> 

    <Domain>mas.qbn</Domain> 

    <ServiceStatus>Never</ServiceStatus> 

    </Service> 

    </SubscribedServices> 

    <AccountantCopy> 

    <AccountantCopyExists>false</AccountantCopyExists> 

    </AccountantCopy> 

    <DataExtRet> 

    <OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID> 

    <DataExtName>AppLock</DataExtName> 

    <DataExtType>STR255TYPE</DataExtType> 

    <DataExtValue>UNLOCKED:ADMIN-PC</DataExtValue> 

    </DataExtRet> 

    </CompanyRet> 

    </CompanyQueryRs> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.enterDataExtValueInQB() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><DataExtAddRq requestID="1"><DataExtAdd><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID><DataExtName>FileID</DataExtName><OtherDataExtType>Company</OtherDataExtType><DataExtValue>{90A44FB5-33D9-4815-AC85-BC87A7E7D1FB}</DataExtValue></DataExtAdd></DataExtAddRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.enterDataExtValueInQB() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <DataExtAddRs requestID="1" statusCode="0" statusSeverity="Info" statusMessage="Status OK"> 

    <DataExtRet> 

    <OwnerID>{57F3B9B1-86F1-4FCC-B1EE-566DE1813D10}</OwnerID> 

    <DataExtName>FileID</DataExtName> 

    <DataExtType>STR255TYPE</DataExtType> 

    <DataExtValue>{90A44FB5-33D9-4815-AC85-BC87A7E7D1FB}</DataExtValue> 

    </DataExtRet> 

    </DataExtAddRs> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.enterDataExtValueInQB() : Data extension value has been created in QuickBooks for FileID 

    20120924.15:11:31 UTC : QBWebConnector.CompanyFileLock.Send_DataExtDefAddRqXML() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><DataExtDefAddRq requestID="1"><DataExtDefAdd><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID><DataExtName>AppLock</DataExtName><DataExtType>STR255TYPE</DataExtType><AssignToObject>Company</AssignToObject></DataExtDefAdd></DataExtDefAddRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:31 UTC : QBWebConnector.CompanyFileLock.Send_DataExtDefAddRqXML() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <DataExtDefAddRs requestID="1" statusCode="3100" statusSeverity="Error" statusMessage="The name "AppLock" of the list element is already in use." /> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:31 UTC : QBWebConnector.CompanyFileLock.Send_DataExtAddRqXML() : XML dump follows: - 



    <?xml version="1.0"?><?qbxml version="11.0"?><QBXML><QBXMLMsgsRq onError="stopOnError"><DataExtAddRq requestID="1"><DataExtAdd><OwnerID>{57F3B9B1-86F1-4fcc-B1EE-566DE1813D10}</OwnerID><DataExtName>AppLock</DataExtName><OtherDataExtType>Company</OtherDataExtType><DataExtValue>UNLOCKED:ADMIN-PC</DataExtValue></DataExtAdd></DataExtAddRq></QBXMLMsgsRq></QBXML> 



    20120924.15:11:31 UTC : QBWebConnector.CompanyFileLock.Send_DataExtAddRqXML() : XML dump follows: - 



    <?xml version="1.0" ?> 

    <QBXML> 

    <QBXMLMsgsRs> 

    <DataExtAddRs requestID="1" statusCode="3180" statusSeverity="Error" statusMessage="There was an error when saving a data extension named "AppLock". QuickBooks error message: Attribute with specified name already exists." /> 

    </QBXMLMsgsRs> 

    </QBXML> 





    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.AddToQuickBooks() : Application PratikWS has been added to QuickBooks. 

    20120924.15:11:31 UTC : QBWebConnector.SOAPWebService.DisconnectFromQB() : Session ended and connection closed 

    20120924.15:11:39 UTC : gridControl1_CheckBoxClicked() : Scheduling has been disabled for PratikWS 

    20120924.15:11:41 UTC : QBWebConnector.WebServiceManager.DoUpdateSelected() : updateWS() for application = 'PratikWS' has STARTED 

    20120924.15:11:41 UTC : QBWebConnector.RegistryManager.getUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock = FALSE 

    20120924.15:11:41 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to True 

    20120924.15:11:41 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session locked ********************* 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application. 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: PratikWS 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): PratikWS 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: http://localhost:8080/TestWS/services/TestHello?WSDL 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion(). 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : Actual error received from web service for serverVersion call: <No such operation 'serverVersion'>. For backward compatibility of all webservers, QBWC will catch all errors under app-not-supporting-serverVersion. 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_serverVersion() : This application does not contain support for serverVersion. Allowing update operation for backward compatibility. 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.1.0.27"> 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.updateWS() : Actual error received from web service for clientVersion call: <No such operation 'clientVersion'>. For backward compatibility of all webservers, QBWC will catch all errors under app-not-supporting-clientVersion. 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_clientVersion() : This application does not contain support for clientVersion. Allowing update operation for backward compatibility. 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'PratikWS', username = 'pratik' 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="pratik"><password=<MaskedForSecurity> 

    20120924.15:11:41 UTC : QBWebConnector.SOAPWebService.do_authenticate() : QBWC1012: Authentication failed due to following error message. 

    Object reference not set to an instance of an object. 

    More info: 

    StackTrace = at QBWebConnector.WebService.do_authenticate(String& ticket, String& companyFileName) 

    Source = QBWebConnector 

    20120924.15:11:41 UTC : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False 

    20120924.15:11:41 UTC : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked ********************* 

    20120924.15:11:41 UTC : QBWebConnector.WebServiceManager.DoUpdateSelected() : Update completed with errors. See log (QWClog.txt) for details. 

回答

1

您使用您的SOAP服務了錯誤的命名空間。修復你的命名空間問題,併發布你的代碼,如果你繼續有問題。

你的命名空間應該是: http://developer.intuit.com/

這讓我覺得,你可能沒有從WSDL生成此任,這可能會解決你的問題。

+0

這也已經回答了你的其他線程:https://idnforums.intuit.com/messageview.aspx?catid=56&threadid=18472&enterthread=y –

+0

STILL我得到「驗證失敗」 和日誌「對象引用未設置爲Object的實例「錯誤。 – Pratik

+0

你知道嗎如何在Eclipse中更改命名空間? – Pratik

相關問題