Объект ответа веб-службы Coldfusion 11

Я изо всех сил пытаюсь заставить CF11 предоставить мне объект ответа веб-службы с тем же набором методов, что и CF8.

Например, один из веб-сервисов давал мне это в CF8:

Объект ответа, возвращенный CF8

И это то, что я получаю сейчас в CF11:

Объект ответа, возвращенный CF11

Как видите, они сильно отличаются!

Я пытался установить wsversion="2", но совсем не помогло:

<cfset wsArgs = {wsversion="2"}>
<cfset ws = createObject("webservice", "http://somewsurl.asmx?wsdl", wsArgs)>
<cfset nvArgs = { foo = "bar" }>
<cfset result = ws.createNameValues(argumentCollection = nvArgs)>

То же самое, если я попробую wsversion="2" на cfinvoke:

<cfinvoke webservice="#ws#" method="createNameValues" argumentCollection="#nvArgs#" returnVariable="result" wsversion="2"/>

Есть идеи?

Примечание. Я получаю в основном ту же проблему на CF10.


person Nick    schedule 29.06.2015    source источник
comment
Я предполагаю, что вы сталкиваетесь с разницей между Axis 1.x в C8 и AXIS 2.x в CF 10/11. Поэтому я думаю, что вам нужно wsversion=1 вместо wsversion=2.   -  person Carl Von Stetten    schedule 29.06.2015
comment
@CarlVonStetten ответ не поможет Нику, но я подозреваю, что ты прав. Вам придется копаться в WSDL, чтобы знать наверняка :(   -  person Mark A Kruger    schedule 29.06.2015
comment
К вашему сведению - похоже, что он начал с версии 1 и перешел на версию 2. Но если он специально не установил версию 1, ему следует попробовать это. По умолчанию это может быть версия 2 в CF 10/11.\   -  person Mark A Kruger    schedule 29.06.2015
comment
Да, для CF10/11 по умолчанию используется версия 2.   -  person Carl Von Stetten    schedule 29.06.2015
comment
Блин, вы правы, это должна быть версия 1!! Каким-то образом мне пришло в голову, что CF8 использует версию 2. Спасибо, теперь это работает.   -  person Nick    schedule 30.06.2015
comment
@CarlVonStetten - Вы должны опубликовать это как ответ.   -  person Leigh    schedule 30.06.2015
comment
@Ли, сделано и сделано. :)   -  person Carl Von Stetten    schedule 30.06.2015


Ответы (1)


В ColdFusion 10 и 11 по умолчанию используется Axis 2.0, а в предыдущих версиях ColdFusion — Axis 1.0. Если вы зависите от поведения Axis 1.0 в ColdFusion 10/11, укажите wsversion=1, чтобы заставить ColdFusion использовать Axis 1.0.

person Carl Von Stetten    schedule 29.06.2015