我开发了一个 SOAP Web 服务,与 Quickbooks WebConnector 一起使用,一切正常,但在一种情况下我遇到了问题。
每当我有一个作业在队列中排队供 Web 连接器处理时,一切都正常,但是当没有作业要处理时,Web 连接器会显示错误消息“向应用程序发送错误消息”实际上什么也没处理。
如果在第一个请求中收到
公共(public)字符串sendRequestXML
如果没有作业,则方法将没有可返回的 XML,在这种情况下应该返回什么。我尝试返回空白字符串“”、null、简单 Xml header ( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><?qbxml version=\"8.0\"?>"
),所有这些都在 Web 连接器中给出了上述错误,并且日志中的错误是“无法解析请求 XML”。
我还查看了文档(QBWC_proguide.pdf),发现当没有什么需要进一步处理时,我们应该发送NoOp,但这也不起作用。
请就此问题提出建议。
最佳答案
If in the first request received in public String sendRequestXML ...
这就是你的问题。
如果队列中没有任何作业,则 sendRequestXML 根本不应该被调用。。如果它被调用,那么您就不会从您的 authenticate(...) 方法返回正确的响应。
以下是来自身份验证的有效响应的一些示例:
具体来说,请注意这一点:
If there is nothing to do, you should return this array:
array(
'a valid ticket string goes here', // send the session ID/ticket here
'none', // indicates that the login was valid, but there's nothing to do
)
如果您像这样返回none
,那么sendRequestXML将永远不会被调用,并且您不会收到错误。
确保您像文档指定的那样返回none
。
关于soap - 如果队列中没有作业,Quickbooks Web 连接器会响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243032/