на начало
На главную страницу
Форум   

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


Код 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

Создайте проект, а затем запустите его, как это обычно делается. В значениях свойств отладки проекта, установленных по умолчанию, задан унифицированный указатель информационного ресурса (URL) http://localhost/ATLServerWeb/ATLServerWeb .dll?Handler=GenATLServerWebWSDL. Результат просмотра этого унифицированного указателя информационного ресурса (URL) показан на рис. 12.25. При этом на самом деле никакие возможности Web-службы не вызываются. Просто на экран выводится XML-представление ее интерфейса.
Хотя просматривать эту страницу в броузере достаточно удобно, но такой способ доступа к Web-службе или ее использования нельзя назвать нормальным. Как правило, методы Web-службы вызываются клиентом из распределенного приложения. Чтобы увидеть, как это происходит, нам придется создать клиентскую программу, которая и будет делать такие вызовы.

25.gif

Рис. 12.25. Просмотр в броузере проекта Web-службы на основе библиотеки шаблонных классов ATL (Web A TL Service Project).


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

страницы в данном разделе 
Глава 12. Web-узлы и Web-службы, работающие на основе ATL Server Web-узлы и Web-службы, работающие на основе ATL Server
История технологий, работающих с динамическим содержимым Web Приложения на основе ATL Server
ATL Server основан на интерфейсе прикладного программирования Internet-сервера (ISAPI) Архитектура приложения, использующего ATL server
Создание проекта ATL Server Project (Проект на основе ATL Server) Динамически подключаемая библиотека (DLL) расширения интерфейса прикладного программирования Internet-сервера (ISAPI)
Динамически подключаемая библиотека (DLL) Web-приложения Создание и запуск проекта на основе ATL Server
Добавление в сервер еще одного обработчика Добавление на сервер обработки управляющей структуры if-else-endif
Добавление на сервер обработки управляющей структуры while-endwhile Передача параметров серверному обработчику
Поддержка состояния сеанса Получение доступа к переменным сервера
Обработка форм Службы сеанса
Создание проекта Web-службы на основе ATL Server (ATL Server Web Service Project) Код Web-службы на основе ATL Server: ATLServerWebService.h
Создание клиентской программы, обращающейся к Web-службе Добавление функций в Web-службу на основе ATL Server
Изменение клиентской программы, работающей с Web-службой Передача структур в качестве входных и выходных параметров
Резюме >  


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста