Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка SOAP: Тег конца "head" не соответствует тегу начала "meta"


Сергей Р. ©   (2011-01-28 09:28:00) 

Добрый день!
Столкнулся с трудностью при разработке веб службы и клиента для нее (Win32). Разработку вел по книжке Марко Кэнту.
Для построения веб службы создал проект типа SOAP Server Application (подтип CGI Stand-alone Executable), в проект включил Soap Server Data Module, в котором поместил компоненты: TDataSetProvider, TSQLConnection, TSQLDataSet. Проверил работоспособность соединения с MySQL.

Со стороны клиента поместил на форму TSoapConnection и TClientDataset, в SoapConnection.URL указал путь к интерфейсу сервера. Далее, на клиенте по кнопке делаю запрос cdataset.DataRequest('SELECT * FROM table');
Со стороны сервера у компонента TDataSetProvider обрабатываю событие DataRequest:

function TSOAPOrderDM.myDSPDataRequest(Sender: TObject;
   Input: OleVariant): OleVariant;
 begin
   with (Sender as TDataSetProvider)  do
   begin
     sqlDS.Open;
     Result := Data;
   end;
 end;

Сервер лежит в папке cgi-bin апача. Запускаю клиента, жму кнопку, получаю ошибку:
Тег конца "head" не соответствует тегу начала "meta"... и вместе с ней какой то недоделанный XML. То есть передача на сервер происходит, ответ от сервера приходит, но имеет неверный формат. Делал все по книжке, в качестве IDE - RAD Studio XE. Подскажите, куда дальше копать, чтобы решить проблему. Спасибо!


Дмитрий Белькевич   (2011-02-03 00:17:00) [1]

Логи - наше всё :)


Palladin   (2011-02-01 14:00:00) [2]

можно и winsniff'ом ,или любым другим снифом, перехватить и посмотреть


Ega23   (2011-02-01 13:26:00) [3]


>  например четко задавать тип ".xml" а не ".cgi"

Что такое "тип cgi"?


> куда дальше копать, чтобы решить проблему. Спасибо!

Смотри, какой конкретно ответ идёт от сервера к клиенту. Т.е. тупо залоггируй его на стороне твоего сервера и посмотри блокнотом обычным.


Cobalt   (2011-01-31 11:02:00) [4]

Возможно тебе придется поправить настройки апача: сделать какое-нибудь расширение для отправляющегося ответа, например четко задавать тип ".xml" а не ".cgi" (как я подозреваю)


Cobalt   (2011-01-31 11:00:00) [5]

я как бы намекаю - выложи полный текст этого "xml-я"
ну и собственно, откуда ты получаешь это текст (xml)?


Сергей Р.   (2011-01-31 09:22:00) [6]

А почему такое может быть? Я использую компоненты в стандартной палитре VCL. Свой код не добавляю.


Медвежонок ХМЛ   (2011-01-28 16:41:00) [7]

ошибка в том, что там, где должен быть xml у тебя находится банальный html.

например:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="dan.css" rel="stylesheet" type="text/css">
</head>

все, что внутри head  - невалидный xml (потому что это и не он, а html)


Сергей Р.   (2011-01-28 14:01:00) [8]

Полный текст ошибки:
--------------------------------------------------------
Тег конца "head" не соответствует тегу начала "META".

Line: 22
</head><body><table class="MainBkgnd" bo.

Описание ошибки в интернете искал, судя по всему формат передаваемого клиенту XML неверный, сейчас я ищу способы debug, чтобы просмотреть ответ полностью.

Я так понимаю, что указанный XML это и есть SOAP ответ сервера клиенту, точнее его часть...


Cobalt   (2011-01-28 13:56:00) [9]

а что в этом самом XML-е?


Наверх

Титульная страница Поиск, карта сайта Написать письмо