Как я могу указать целое число как свойство или тип аргумента в ColdFusion? - PullRequest
1 голос
/ 07 ноября 2011

Я создаю WebService в ColdFusion 8, используя CFC с удаленными методами.Мне нужно указать сложные типы данных в WSDL, поэтому я создаю CFC для каждого из этих типов.Например, допустим, у меня есть тип «Персона».Включает свойство "возраст".Это свойство всегда должно быть целым числом.Однако ColdFusion не имеет «целое число» в качестве допустимого типа только для чисел, что переводится как «xsd: double» в WSDL.Как можно указать, что свойство - или аргумент, в этом отношении - имеет тип "целое число"?

К вашему сведению, ответ Генри очень полезен, но я пытаюсь вернуть объект из функции -не просто целое число.Мне нужно, чтобы одно из свойств было возвращено как целое число.

1 Ответ

1 голос
/ 07 ноября 2011
  1. Напишите свой собственный WSDL.Сохраните ваш CFC и перехватите сгенерированный RPC WSDL, указав в браузере значение http://mysite/mypath/myCFC.cfc?WSDL Получите исходный код или очистите все - добавленные вашим браузером.Убедитесь, что перед тегом <?xml version нет пробелов.Найдите xsd:double в ответном сообщении и измените его на xsd:int.

  2. Укажите WSDL в своем компоненте.Добавьте атрибут wsdlfile="mywsdl.wsdl" к имени файла и добавьте атрибут style="document", необходимый для пользовательских WSDL.

  3. Привязка веб-службы к WSDL ColdFusion делает это автоматически, ноэто их кеширует.Когда WSDL изменяется, вам нужно перезапустить службу или перейти к «Данные и службы -> Веб-службы» в администрировании CF и обновить службу.

  4. Измените свою функцию, чтобы вернуть "Any" вместо "Numeric"

  5. В вашем cfreturn создайте экземпляр Java Integer <cfreturn createObject("java","java.lang.Integer").init(JavaCast("int",myvalue)) />

http://www.threesources.com/archives/009007.html

...