Ключ к вашей проблеме скрыт в этой части ошибки:
No deserializer for
Веб-сервис, который вы пытаетесь использовать, работает с пользовательскими типами данных; очень вероятно, что веб-сервис либо потребует аргумент ... либо вернет значение ... это тип переменной, которую CF не понимает (скажем, пользовательский класс).
К сожалению, чтобы решить эту проблему, вам придется глубже вникнуть в суть веб-сервиса и выяснить, сможете ли вы реализовать эти пользовательские типы на своем конце.
- редактировать -
На основании описания вашего Java-класса в комментарии, когда он инициализируется, устанавливается частная переменная:
private TranscodeVideoFile[] temp = new TranscodeVideoFile[1];
, хотя он и не имеет прямого отношения к вашему вызову метода, он создается как часть вашего начального CreateObject (), и, следовательно, пытается поддерживать меня в некоторой степени в последующих вызовах объектов. К сожалению, этот класс является нестандартным и неизвестным для CF, и он будет генерировать ошибку десериализатора, если вы продолжите идти по этому пути разработки.
Есть решение ... но в этом случае есть "правильная вещь".
Решение
Добавьте скомпилированные классы в каталог заглушек веб-службы вручную , что позволяет ColdFusion знать о них, так что при вызове методов веб-службы ColdFusion знает, как обрабатывать классы, и сериализовать / десериализовать их соответственно.
Я использовал этот процесс несколько месяцев, работая с Netsuite API, кредит: Джереми Гиббенс. Вы также захотите провести исследование инструмента ColdFusion, который позволяет создавать заглушки ad-hoc - это инструмент wsdl2java.
Дата статьи на Wsdl2Java , но, тем не менее, актуальна.
"Правильное"
Если вы можете, не работайте с пользовательскими типами через SOAP. Если у вас есть контроль над кодом, который обертывает объекты FFMpeg Helper и вносит свой вклад в сам сервис - не пишите код, который имеет дело с пользовательскими классами. Работайте с типами, понятными ColdFusion.
ColdFusion-совместимые типы данных для использования в веб-службах .