2

我已经开发了一个 SOAP Web 服务来与 quickbooks webconnector 一起使用,一切都运行良好,但在一个案例中我遇到了问题。

每次我在队列中排队等待 Web 连接器处理事情时都可以,但是当没有工作要处理时,Web 连接器会显示错误消息“正在向应用程序发送错误消息”,尽管实际上没有任何处理。

如果在收到的第一个请求中

公共字符串 sendRequestXML

方法如果没有作业,将没有可返回的 XML,在这种情况下应该返回什么。我尝试返回空白字符串 ""、null、Simple Xml headers( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><?qbxml version=\"8.0\"?>"),所有这些都在 web 连接器中给出了上述错误,并且日志中的错误是"Unable to parse request XML"

我还查看了文档(QBWC_proguide.pdf),发现当没有什么需要进一步处理时我们应该发送NoOp但这也不起作用。

请就这个问题提出建议。

4

1 回答 1

2

如果在公共字符串 sendRequestXML中收到的第一个请求...

这是你的问题。

如果队列中没有任何作业,则根本不应该调用sendRequestXML。如果它被调用,那么您没有从您的authenticate (...) 方法返回正确的响应。

以下是来自authenticate的一些有效响应示例:

具体来说,请注意这一点:

如果无事可做,则应返回此数组:

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按照文档指定的方式返回。

于 2014-08-11T13:48:31.720 回答