Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизОшибка SOAP: Тег конца "head" не соответствует тегу начала "meta" Найти похожие ветки
← →
Сергей Р. (2011-01-28 09:28) [0]Добрый день!
Столкнулся с трудностью при разработке веб службы и клиента для нее (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. Подскажите, куда дальше копать, чтобы решить проблему. Спасибо!
← →
Cobalt © (2011-01-28 13:56) [1]а что в этом самом XML-е?
← →
Сергей Р. (2011-01-28 14:01) [2]Полный текст ошибки:
--------------------------------------------------------
Тег конца "head" не соответствует тегу начала "META".
Line: 22
</head><body><table class="MainBkgnd" bo.
Описание ошибки в интернете искал, судя по всему формат передаваемого клиенту XML неверный, сейчас я ищу способы debug, чтобы просмотреть ответ полностью.
Я так понимаю, что указанный XML это и есть SOAP ответ сервера клиенту, точнее его часть...
← →
Медвежонок ХМЛ © (2011-01-28 16:41) [3]ошибка в том, что там, где должен быть 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-31 09:22) [4]А почему такое может быть? Я использую компоненты в стандартной палитре VCL. Свой код не добавляю.
← →
Cobalt © (2011-01-31 11:00) [5]я как бы намекаю - выложи полный текст этого "xml-я"
ну и собственно, откуда ты получаешь это текст (xml)?
← →
Cobalt © (2011-01-31 11:02) [6]Возможно тебе придется поправить настройки апача: сделать какое-нибудь расширение для отправляющегося ответа, например четко задавать тип ".xml" а не ".cgi" (как я подозреваю)
← →
Ega23 © (2011-02-01 13:26) [7]
> например четко задавать тип ".xml" а не ".cgi"
Что такое "тип cgi"?
> куда дальше копать, чтобы решить проблему. Спасибо!
Смотри, какой конкретно ответ идёт от сервера к клиенту. Т.е. тупо залоггируй его на стороне твоего сервера и посмотри блокнотом обычным.
← →
Palladin © (2011-02-01 14:00) [8]можно и winsniff"ом ,или любым другим снифом, перехватить и посмотреть
← →
Дмитрий Белькевич (2011-02-03 00:17) [9]Логи - наше всё :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.065 c