Ответ веб-коннектора Quickbooks, если в очереди нет заданий
Я разработал веб-службу SOAP для использования с веб-соединителем quickbooks, и все работает нормально, но в одном случае у меня возникают проблемы.
Каждый раз, когда у меня в очереди выстраивается задание для обработки веб-соединителя, все в порядке, но при отсутствии задания на обработку веб-соединителя отображается сообщение об ошибке "Отправка сообщения об ошибке в приложение", хотя на самом деле ничего не было обработано.
Если в первом запросе, полученном в
public String sendRequestXML
метод, если нет рабочих мест, не будет XML, доступного для возврата, что должно быть возвращено в этом случае. Я попытался вернуть пустую строку "", нулевые, простые заголовки Xml ("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><?qbxml version=\"8.0\"?>"
) и все это дало вышеуказанную ошибку в веб-соединителе, и ошибка в журналах была "Невозможно проанализировать XML-запрос".
Также я просмотрел документы (QBWC_proguide.pdf) и обнаружил, что мы должны отправлять NoOp, когда дальше нечего обрабатывать, но это тоже не сработало.
Пожалуйста, предложите по этому вопросу.
1 ответ
Если в первом запросе публично получен String 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
как документы указывают.