Architecture Net


Код Web-службы на основе ATL Server: ATLServerWebService.h


Главное, чем генерация Web-приложения отличается от генерации Web-службы, — это файл ATLServerWebService . h. В обоих случаях в этом файле определяется, хотя и с небольшим количеством отличий, класс обработчика запросов на основе ATL Server. В файле ATLServerWebService .h определяется также пространство имен и интерфейс доступа к Web-службе с помощью протокола SOAP. Вот код пусковой системы для этого файла. Обратите внимание, что в нем определяется интерфейс lATLServer-WebService. Именно этот интерфейс реализуется классом обработчика запросов, находящимся в одноименном исходном файле.

namespace ATLServerWebService
// пространство имен ATLServerWebService
{
// все структуры, перечисления и операторы typedef
// для вашей Web-службы должны быть размещены
// в этом пространстве имен
// IATLServerWebService - объявление интерфейса Web-службы
//
[
uuid("53A879FF-9D20-42A8-9978-COD4B05B10B7"),
object // объект
]
_interface lATLServerWebService // интерфейс
{
// HelloWorld - метод примера Web-службы на основе ATL Server.


//Он показывает, как объявить метод Web-службы, а также
// входные и выходные параметры
[id(1)] HRESULT HelloWorld( // идентификатор (1)
[in] BSTR bstrlnput, [out, retval] BSTR *bstrOutput);
// TODO: Add additional Web Service methods here
// TODO: Добавьте здесь дополнительные методы Web-службы
};
// ATLServerWebService - реализация Web-службы
//
[
request_handler(name="Default", // по умолчанию
sdl="GenATLServerWebWSDL") ,
soap_handler(
name="ATLServerWebService",
namespace="urn:ATLServerWebService", // пространство имен
protocol="soap" // протокол
)
]
class CATLServerWebService :
public lATLServerWebService
{
public:
// Это - пример метода Web-службы, который показывает как
// использовать атрибут soap_method, чтобы предоставить
// метод для использования как Web-метод
[ soap_method ]
HRESULT HelloWorld(
/*[in]*/ BSTR bstrlnput,
/*[out, retval]*/ BSTR *bstrOutput)
{
CComBSTR bstrOut(L"Hello "); // Привет
bstrOut += bstrInput;
bstrOut += L"!";
*bstrOutput = bstrOut.Detach();
return S_OK;
}
// TODO: Add additional Service methods here
// TODO: Добавьте здесь дополнительные методы Web-службы
};
// класс CATLServerWebService
}
// пространство имен ATLServerWebService




- Начало -  - Назад -  - Вперед -



Книжный магазин