помочь разработчику .NET использовать сервис wcf с помощью coldfusion - PullRequest
7 голосов
/ 20 мая 2010

Я - разработчик .NET без опыта Coldfusion, но мне нужно написать код cf для доступа к настроенному мной сервису wcf.У меня есть несколько служб WCF, размещенных в IIS 7 с помощью WsHttpBinding, и я могу нормально использовать службы, добавляя ссылки на службы к клиенту .NET и используя клиентские классы.

Это очень просто.для разработчика .NET:

var addressClient = new Service.AddressClient();
addressClient.AddressDTO[] addresses = addressClient.GetAddresses();

Очевидно, что Visual Studio много делает за кулисами для настройки этих клиентских классов из WSDL.

Я видел примеры Coldfusion с использованием cfinvokeвызывать веб-сервисы, но не там, где они фактически устанавливают клиентские классы из WSDL и создают их из ответа веб-сервиса.

Итак, как что-то подобное делается из coldfusion?

Заранее спасибо!

Ответы [ 4 ]

2 голосов
/ 27 мая 2010

другие верны в том, что если ваш веб-сервис возвращает простые типы данных, cf отобразит их на типы данных cf, и все будет просто. однако в некоторых случаях вам придется самостоятельно преобразовывать сложные типы данных в типы данных cf.

cflib.org имеет некоторую функцию для их обработки, так что вы можете посмотреть там. Здесь есть функция для преобразования набора данных .net, возвращаемого из веб-сервиса, в запрос cf. надеюсь, это даст вам момент ах-ха:

http://www.cflib.org/index.cfm?event=page.udfbyid&udfid=1580

1 голос
/ 20 мая 2010

Проблема с CF заключается в том, что она не позволяет вам справляться со сложными объектами. Так что, пока служба ожидает только параметров строк и т. Д., Но если она хочет сложного вложения объектов, она разваливается.

В основном вам нужно перейти к Java-объектам Axis.

Я уже однажды ответил здесь:

Веб-служба ожидает объект DataSet, как я могу предоставить это через ColdFusion или в необработанном XML?

1 голос
/ 20 мая 2010

Adobe на самом деле имеет очень хороший справочник, подробно описывающий все шаги, необходимые для перехода от WSDL к коду ColdFusion для использования веб-службы:

ColdFusion: использование веб-служб

Если вы используете WsHttpBinding в WCF, то ваша веб-служба должна работать точно так же, как в примере (вы можете сравнить ваш WSDL с примером WSDL, чтобы понять, как создавать все вручную) .

0 голосов
/ 26 мая 2010

Вы должны настроить конечную точку для работы в качестве веб-службы .NET. Как только вы это сделаете, вы можете вызвать его, просто используя Createobject в coldfusion Вот быстрый пример:

<cfscript> 
  wcf = CreateObject("webservice","http://ws.spreety.com/TvOnline2009.svc?wsdl"); 
  variables.TalkShowImgHtml = wcf.GetGenreTalkShowImg("test@spreety.com"); 
</cfscript> 
<cfoutput>#variables.TalkShowImgHtml#</cfoutput>
...