Как ColdFusion сериализует переменные, возвращаемые вызовами веб-службы? - PullRequest
2 голосов
/ 08 июля 2010

Я хотел бы знать, как ColdFusion сериализует переменные, возвращаемые вызовами веб-службы, чтобы я мог выяснить, насколько они велики (в байтах).

У меня возникают проблемы, когда некоторые из моих веб-запросоввозвращаются (я могу сказать по операторам журнала), но затем я получаю ОШИБКА ПРИЗВАНИЯ: Невозможно выполнить вызов веб-службы.

Моя догадка после отладки, которую я сделал до сих пор, заключается в том, что возвратstruct, которую он пытается сериализовать и отправить обратно, слишком велика, и я хотел бы добавить еще один оператор журнала для его размера.Я мог бы записать len (resultStruct) или len (serializeJSON (resultStruct)) * в удаленном методе непосредственно перед возвратом, но в идеале у меня должна быть истинная длина, которую мы отправляем обратно черезсерия труб.

Код (взятый из компонента, выполняющего наши функциональные тесты :-P), который выполняет запрос, выглядит следующим образом:

<cfinvoke webservice="#remoteFacadeURL#" method="executeTestCase" returnvariable="currMethodResult">
    <cfinvokeargument name="componentName" value="#componentName#"/>
    <cfinvokeargument name="methodNames" value="#getTestsQuery.methodName#"/>
    <cfinvokeargument name="TestRunKey" value="#TestRunKey#"/>
</cfinvoke>

1 Ответ

2 голосов
/ 16 июля 2010

Я нашел ответ, проверив ответ и предоставив соответствующую документацию, в которой указано, что тип сериализации зависит от атрибута «returnFormat» тега cffunction, который при отсутствии по умолчанию имеет значение WDDX.

От функция ColdFusion 8 Документация :

По умолчанию ColdFusion сериализует все возвращаемые типы (включая простые возвращаемые типы), кроме XML, в формат WDDX и возвращает данные XML в виде XMLtext.

Вы также можете использовать returnformat в качестве параметра HTTP-запроса при вызове удаленной функции CFC.Этот параметр имеет тот же эффект, что и атрибут returnformat, и переопределяет любое значение атрибута returnformat, указанное в теге cffunction.

Другие, отличные от значения по умолчанию, параметры являются простыми (текст для типа, который может быть преобразован встрока) и JSON.

...