ZebroidФорумПубличный разделБаги / ОшибкиАрхивJoomla 3x XML/RPC Ошибки

Joomla 3x XML/RPC Ошибки

21 декабря 2014, 00:09
Зарегистрирован: 13 ноября 2013, 23:24
Joomla 3.3.6

1. Не корректно отображаются ссылки на страницы сайта в лог файле в результате импорта XML/RPC.
XML/RPC — делаю импорт, в списке страниц вижу следующие не работающие ссылки:
www.site.ru/?id=424
www.site.ru/?id=423

Как должно быть:
www.site.ru/info/363-zhenshhina-ch-3
www.site.ru/info/364-zhenshhina-ch-4

Когда делаю синхронизацию — ссылки в логе приводятся корректные.

2. После импорта вношу изменения и делаю синхронизацию.
В итоге из лога вижу что изменения внеслись в 25 материала из 31. На остальные материалы выдается ошибка
Ответ: Операция прошла неудачно! XML error: Undeclared entity error at line 22, column 35

Еще раз выполнил синхронизацию, на этот раз 29 материалов синхронизировалось.
На третий раз 26 материалов синхронизировалось.
Какого-то конкретного материала который не хотел бы синхронизироваться нет. Каждый раз разные материалы выпадают из синхронизации. Нет какой-либо закономерности.

Получается что синхронизация XML/RPC выдает непредсказуемые результаты и не возможно рассчитывать на полноценное функционирование этого инструмента.

3. Удалил все материалы. И из корзины в джумле тоже.
Делаю Экспорт тех же материалов в пустую Joomla.
Экспортировалось 14 материалов из 31.
В лог программы куча ошибок:

Ответ: Статус неизвестен!
Failed to get response header
Ответ: Операция прошла неудачно! Item was not found.
Ответ: Операция прошла неудачно! XML error: Undeclared entity error at line 22, column 23

4. Если удалить материал, синхронизироваться и затем заново добавить точно такой же материал и попробовать осуществить синхронизацию — получим ошибку. Такой Алиас занят. Дело в том что когда Зеброид удаляет материал в Джумле, он его не очищает из корзины и материал физически существует… И это мешает его заново добавить на сайт через XML/RPC

Комментарий отредактирован 5 раз(а). Последний раз редактировал martil 21 декабря 2014, 00:51.
21 декабря 2014, 12:58
Зарегистрирован: 10 апреля 2012, 00:00
1. Плагин XML-RPC в Джумле не может использовать настройки ЧПУ. Не знаю почему, но разработчики заблокировали эту возможность. Я когда-то много времени провел решая эту проблему, но позитивного результата не получил.

2. Без полного лога постинга я мало что могу сказать по этому поводу. Судя по тому, что ошибка выскакивает в разных местах — проблема не с Зеброидом, а вашим сервером. XML-RPC создаёт очень сильную нагрузку на сервер, часто слабые сервера не выдерживают такие нагрузки и перестают вообще или частично отвечать на запросы.

3. Без полного лога постинга я ничего не могу сказать. Просьба читать правила раздела перед публикацией темы.

4. Проверю.

21 декабря 2014, 17:11
Зарегистрирован: 13 ноября 2013, 23:24
1. XML-RPC выдает нормальные ЧПУ УРЛы при синхронизации.
2. Я понимаю что может быть нагрузка и т.д. Я специально выставлял задержку между операциями в прошлый раз.
Вопрос в том что ошибка звучит не как ошибка к подключение и т.д. а как ошибка в XML в какой-то строчке.
XML error: Undeclared entity error at line 22, column 35
Я могу вам предоставить лог, но в нем мало инфы и ее явно не достаточно что бы понять в чем ошибка. Поэтому я отправлял вам реквизиты доступа к сайту. Лучше направить вам лог или посмотрите воочию?

Раньше XML-RPC работал нормально, все постилось и синхронизировалось без ошибок.
Что изменилось: Joomla обновлена до последней версии Joomla 3.3.6 и установлена последняя версия XML-RPC модуля

21 декабря 2014, 17:38
Зарегистрирован: 10 апреля 2012, 00:00
1. Тогда я не понимаю где именно проблема?

2. Простой пример: Зеброид отправляет запрос на изменение/добавления статьи. Все запросы — это XML документы. Во время отправки запроса сервер отрубил соединение недокачав XML файл который отправляет ему Зеброид. Соответственно во время парсинга этого файла в нем не хватает части, на что и указывает эта ошибка. Самый просто способ проверить кто виноват — проделать ту же операцию на другом сервере.

3. По этой проблеме лога, скорее всего, будет достаточно. Судя по тому, что у вас среди ошибок есть «Failed to get response header», который указывает на то, что программа не получила правильно ответа от сервера на запрос — я могу предположить, что другие ошибки следствие этой. Некоторые операции тесно связаны и выполняются в определенной последовательности. Если в одной из операций этой цепочки сервер не верно отвечает — это приводит к тому, что другие операции не могут быть выполнены, в частности и с такими ошибками как вы указали. Собственно говоря это я и хотел проверить в логе.

21 декабря 2014, 18:00
Зарегистрирован: 13 ноября 2013, 23:24
1. Как я и писал в первом посте, проблема в том что при Импорте — кривые УРЛы, при синхронизации — нормальные. Проблема в импорте.
2,3. Дело в том что «ДО» — это все работало на моем сервере и синхронизировалось и экспортировалось и т.д. Сейчас нет.
Хостинг у меня работает в штатном режиме, синхронизацию делаю с паузой.
Если бы была проблема в сервере, то наверное и импорт бы выдавал ошибки. Но их нет при импорте. При импорте, закачиваются все материалы и категории. Все ок. Не работают остальные функции.

Эта ошибка только на экспорте появлялась Failed to get response header
На синхронизации ее не было.

Выслал лог синхронизации на почту.

Комментарий отредактирован 2 раз(а). Последний раз редактировал martil 21 декабря 2014, 18:13.
21 декабря 2014, 21:08
Зарегистрирован: 10 апреля 2012, 00:00
Для эксперимента установил на локальном сервере Joomla последней версии (3.3.6), установил в ней плагин XML-RPC последней версии и попробовал сделать синхронизацию со своим проектом. В результате получил:

1. Ссылки на посты в отчете в половине случаев как вы и говорили, типа «site.ru/?id=424». В связи с тем, что всю информацию о посте плагин получает не с базы данных, а используя API Joomla и тем, что раньше такого не было — могу только предположить, что разработчики Joomla где-то допустили ошибку при выпуске нового обновления (тем более ссылки не валидные). К сожалению со стороны программы на это повлиять нету возможности. Нужно ждать исправления либо откатится к предыдущей версии Joomla.

2. Не было ниодной ошибки редактирования или получения ссылки на пост со стороны сайта, посему моё предположение о том, что в данном случае виноват ваш сервер остаётся наиболее вероятным. Версия программы у нас одна и та же, версия Joomla так же, отличаются только компьютеры на которых работают сайты. Если хотите убедится в этом сами — попробуйте проделать то же что и я.

То, что у вас раньше всё работало, а сейчас не работает не доказывает вину программы. Вы сами говорили, что обновили Joomla и плагин до последней версии. Только плагин XML-RPC не менялся уже почти пол года, а вот в Joomla могли добавить новый функционал, который сделал её более тяжелой для вашего сервера и то, что работало отлично раньше перестало работать сейчас.

Честно говоря я и изменений в механизм работы XML-RPC тоже довольно давно не делал, а не внося в код изменений нельзя его поломать.

22 декабря 2014, 18:44
Зарегистрирован: 13 ноября 2013, 23:24
2. Что бы развеять сомнения в моем сервере, я укажу что пользуюсь хостингом от Godaddy.
Последний раз, я пользовался плагином XML-RPC в начале 2014 года.
Плагин XML-RPC работает частично, он не то что бы совсем не работает.
Если он работает частично, т.е. публикует только часть материалов, то для меня это означает что он не работает фактически.
Т.к. потом, в дальнейшем выяснять какие материалы опубликовались а какие нет, будет весьма затруднительно. И сама работа с инструментом в принципе становиться не возможна.

Так же для примера, когда я выполняю Импорт через XML-RPC, у меня зависает Зеброид и он грузит проц на 50%, потом отвисает и все материалы находятся в Зеброиде. Т.е. импорт выполняется без каких-либо задержек и т.д. создавая нехилую нагрузку на сервер. И сервер это все выдерживает и отдает все материалы.
При синхронизации же, я выставляю 2 секундную задержку между операциями, все выполняется медленно с нужными паузами, не создавая излишней нагрузки на сервер, но с кучей ошибок.

У меня вопрос, зачем нужен инструмент, который может работать, а может не работать. Может имеет смысл поставить эти операции в цикл и не прекращать попытки выполнить синхронизацию всех материалов до победного, пока все не будет синхронизировано?
Важно ведь что бы был результат, а не видимость работы…

24 декабря 2014, 22:33
Зарегистрирован: 10 апреля 2012, 00:00
Что бы развеять сомнения в моем сервере, я укажу что пользуюсь хостингом от Godaddy.
Чтобы развеять сомнения, что проблема не в сервере, нужно проверить работу на заведомо мощном сервере. То, что вы хоститесь в Godaddy еще ничего не значит. Если бы вы сказали, что хоститесь в Amazon AWS, я бы еще понял, но Godaddy по моему никогда не выступал эталоном мощных серверов.

Самый простой вариант — это использовать локальный сервер. Если программа на локальном сервере будет работать нормально — значит проблема не в ней, так как заведомо нерабочая программа не будет работать ни в каких условиях.

Так же для примера, когда я выполняю Импорт через XML-RPC, у меня зависает Зеброид и он грузит проц на 50%, потом отвисает и все материалы находятся в Зеброиде. Т.е. импорт выполняется без каких-либо задержек и т.д. создавая нехилую нагрузку на сервер. И сервер это все выдерживает и отдает все материалы.
Сравнивание с импортом некорректно, так как импорт создаёт сильную, но кратковременную нагрузку, в отличия от экспорта, который создаёт менее сильную, но постоянную нагрузку.

При синхронизации же, я выставляю 2 секундную задержку между операциями, все выполняется медленно с нужными паузами, не создавая излишней нагрузки на сервер, но с кучей ошибок.
Я не могу отвечать за работу вашего сервера. Если сервер не отправил ответ на запрос программы, то это не проблема программы. Не понимаю почему вы считаете иначе.

У меня вопрос, зачем нужен инструмент, который может работать, а может не работать.

Программа работает нормально в нормальных условиях

Может имеет смысл поставить эти операции в цикл и не прекращать попытки выполнить синхронизацию всех материалов до победного, пока все не будет синхронизировано?
Причины, по которым сервер не отправляет положительный ответ могут быть разными, зацикливать до бесконечности отправку поста, когда это может быть не возможно — плохой вариант.

25 декабря 2014, 13:52
Зарегистрирован: 13 ноября 2013, 23:24
Как-то можно получить больше информации из логов?
Те логи что я вам прислал, как мне кажется не раскрывают истинные причины происходящего…

25 декабря 2014, 15:58
Зарегистрирован: 13 ноября 2013, 23:24
Установил пустую Джумлу 3.3.6 и XML-RPC модуль. Провел синхронизацию, все было очень шустро и даже синхронизировалось 29 материалов из 31.
Поставил задержку 10 секунд, в результате синхронизировалось 19 материалов из 31. Стало хуже.
Теперь, везде выдается такая ошибка:
Ответ: Операция прошла неудачно! Item was not found.
Что это за ошибка такая? Ничего не понятно из этого описания. Не ясно какой элемент не найден. Почему он не найден и т.д. В тексте ошибки ничего не говориться про мой сервер и что мой сервер выдает не верный код ошибки.

Вы не подскажите, существует ли аналогичный XML-RPC клиент массового постинга в Joomla наподобие вашего?
Я просто не вижу аналогов, а текущий инструмент не работает и я не знаю как заставить его работать. Я готов мириться с длительным временем синхронизации, с учетом больших пауз в 10 секунд и больше, лишь бы это работало. Но на текущий момент не работает, результат на выходе не предсказуемый.

Тема закрыта