Веб-служба / WCF Новичок: создание прокси-клиента / объекта WCF на основе веб-службы SOAP на основе Java - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть веб-приложение .Net, которое должно взаимодействовать с системой на основе Java через SOAP.

Я не работал с веб-службами, кроме некоторых базовых WCF, и буду признателен за любые рекомендации по этому вопросу.

По сути, я думал о создании прокси-клиента WCF для подключения к веб-службам SOAP. Система представляет собой стороннюю систему на основе Java с интерфейсом SOAP.

В приведенном примере кода для генерации прокси использовался wsdl, но разве это не было до появления WCF?

UsernameToken aToken = new UsernameToken("root", "root", PasswordOption.SendPlainText);

MetadataService.MetadataService aMetadataService = new MetadataService.MetadataService();

SoapContext aContext = aMetadataService.RequestSoapContext;

aContext.Security.Tokens.Add(aToken);

String aXmp = aMetadataService.s_getXmpFromRecordID(wAssetId.Text);

Есть предложения? Спасибо!

1 Ответ

2 голосов
/ 16 сентября 2011

WSDL - это все, что вам нужно для создания клиентского прокси для веб-службы. И нет, это не до времен WCF. WSDL был разработан специально для этой цели.

Самое простое решение - использовать svcutil для создания кода.

Вы вызываете svcutil с WSDL веб-службы и возвращаете клиентский код вместе с конфигурацией для него.

Затем вы вызываете операции веб-службы как методы на экземпляре клиента. Это так просто!

Например, давайте рассмотрим базовый веб-сервис, подобный следующему: http://www.startvbdotnet.com/web/sample2.asmx (это базовая математика, представленная в виде веб-службы, которую я нашел в Google-ing).

Чтобы сгенерировать клиент для этого, я бы использовал svcutil так:

svcutil http://www.startvbdotnet.com/web/sample2.asmx?wsdl

Эта команда сгенерирует файлы Sample.cs и output.config (код и конфигурация для клиента).

Вы добавляете их в свой проект (вместе с необходимыми сборками, такими как System.ServiceModel и System.Runtime.Serialization), и теперь вы можете вызывать веб-сервис с кодом, подобным этому:

using (SampleSoapClient proxy = new SampleSoapClient())
{
    Console.WriteLine(proxy.Add(6, 2));
    Console.WriteLine(proxy.Substract(6, 2));
    Console.WriteLine(proxy.Divide(6, 2));
    Console.WriteLine(proxy.Multiply(6, 2));
}

WCF облегчает жизнь. Добавление безопасности также просто с использованием правильной конфигурации или атрибутов для классов обслуживания.

...