![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка 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-е?