Строковый индекс вне диапазона: -1 ошибка с CFFeed

У меня есть следующий код в базовом файле .cfm. Я хочу получить RSS-канал NYTimes Business.

    <cfset feedurl = "http://rss.nytimes.com/services/xml/rss/nyt/Business.xml">
    <cffeed source="#feedurl#" properties="feedmeta" query="feeditems" />
    <cfdump var="#feeditems#" label="feedItems" />

Когда я запускаю это, я получаю следующую ошибку -

    java.lang.StringIndexOutOfBoundsException - in D:\nytimesrss.cfm : line 2
    String index out of range: -1

Но тот же код отлично работает с лентой из Вашингтона. Это проблема в конце NYTimes или я могу что-то сделать, чтобы это исправить?


person Jen    schedule 06.05.2013    source источник
comment
Я скопировал ваш первый блок кода, и у меня он отлично работает на CF9. Может быть, это была периодическая проблема?   -  person Sean Walsh    schedule 06.05.2013
comment
(Редактировать) У меня тоже работало под CF10. Проверьте журналы {cf_root}\logs\feed.log. Возможно, доступ заблокирован или ограничен. Можете проверить условия сайта.   -  person Leigh    schedule 06.05.2013
comment
Вау, спасибо, Шон и Ли! Я все еще получаю сообщение об ошибке, но это интересная находка.   -  person Jen    schedule 06.05.2013
comment
Код когда-нибудь работал на вас? Как сказал @Leigh, возможно, вы можете быть заблокированы или ограничены, если вы все утро извлекаете данные канала.   -  person Sean Walsh    schedule 06.05.2013
comment
Мы используем ColdFusion 8 - я подозреваю, что проблема может быть в этом.   -  person Jen    schedule 06.05.2013
comment
Шон — да, этот код уже давно работает нормально, и мы используем его в различных лентах. Это всего лишь несколько случайных каналов NYTimes, которые генерируют ошибки, но другие каналы NYTimes в порядке. :)   -  person Jen    schedule 06.05.2013
comment
Проверьте журналы. Они могут дать вам больше информации о том, является ли это прерывистой проблемой подключения. (Я не могу вспомнить, существует ли feed.log в CF8).   -  person Leigh    schedule 06.05.2013
comment
Только что проверил - под CF8 его нет. Гах!   -  person Jen    schedule 06.05.2013
comment
Хорошо проверьте и другие (самая последняя временная метка). Возможно, ошибки подачи записываются где-то еще. Кроме того, эти случайные каналы не работают постоянно или только иногда.   -  person Leigh    schedule 06.05.2013
comment
Я понятия не имею, как понимать файл журнала, но вот что получилось: индекс строки вне диапазона: -1 Конкретная последовательность включенных или обработанных файлов: D:\jenelle\nytimesrss.cfm, строка: 2   -  person Jen    schedule 06.05.2013
comment
(Изменить) В каком файле журнала? Их несколько, а некоторые содержат более подробную информацию чем другие. (Хотя никогда не помешает проверить журналы, я не знаю, насколько подробно журналы CF8 об ошибках фида. Возможно, вам придется использовать прокси)   -  person Leigh    schedule 06.05.2013
comment
Этот бизнес был последовательным провалом. Я просматриваю и проверяю сейчас, поскольку я думаю, что у других есть проблемы, связанные с рекламой в их каналах и кодом, который мы используем в наших файлах дизайна, чтобы заблокировать их. Так что на данный момент бизнес кажется проблемой. Канал отображается нормально сам по себе на (rss.nytimes.com/services /xml/rss/nyt/Business.xml), что постоянно возвращает меня к тому, что это наша проблема.   -  person Jen    schedule 06.05.2013
comment
Если он постоянно терпит неудачу, это настоятельно указывает на регулирование или проблему с подключением / брандмауэром. Возможно, вам придется использовать прокси для проверки фактического http-вызова. Также можно попробовать вызвать URL-адрес фида с помощью cfhttp и вывести ответ.   -  person Leigh    schedule 06.05.2013
comment
АГА! Может ли это быть проблемой? Предупреждение: выделение памяти JVM восстановлено до менее 450 МБ — это было из montior.log. Другая ошибка была из журнала приложений.   -  person Jen    schedule 06.05.2013
comment
Кстати - спасибо за всю вашу помощь Ли. Ваши ответы действительно помогают мне понять, что происходит! :)   -  person Jen    schedule 06.05.2013
comment
Я использовал <cfhttp url = "http://rss.nytimes.com/services/xml/rss/nyt/Business.xml" method="get" timeout="5"> <cfdump var="#cfhttp#"> и все дампы данных в «Содержимое файла», но в деталях ошибки есть [empty string]   -  person Jen    schedule 06.05.2013
comment
Хм... Я только что попробовал это с CF8 и получил ту же ошибку в CF8. Позвольте мне поковыряться в лог-файлах.   -  person Leigh    schedule 06.05.2013
comment
Что ж, я использовал этот адрес фида на нашей собственной странице с кодом, который нам пришлось изменить в прошлом году из-за их рекламы, и... ЭТО РАБОТАЕТ! Итак, что бы ни случилось с этим каналом при попытке сбросить его, это одно, но канал работает. СПАСИБО ВСЕМ БОЛЬШОЕ ЗА ПОМОЩЬ! @Ли, ты звезда!   -  person Jen    schedule 06.05.2013
comment
с кодом, который нам пришлось изменить в прошлом году Из любопытства, какой на самом деле код? Не стесняйтесь публиковать это как ответ. Я предполагаю, что старый код не использует cffeed ..? Потому что в моих тестах фид извлекается успешно, но есть в нем что-то, что cffeed не нравится... (Кстати, рад, что вы нашли обходной путь :)   -  person Leigh    schedule 06.05.2013
comment
Ответ должен быть опубликован как ответ, а вопрос обновлен соответствующей информацией из этих комментариев. Людям трудно уследить за длинной цепочкой комментариев.   -  person George Stocker    schedule 07.05.2013
comment
@Jen Все это должно быть в вашем вопросе (вы можете отредактировать свой вопрос, используя ссылку «редактировать» под вопросом). Размещение его в комментариях значительно усложняет отслеживание (а комментарии могут быть удалены в любое время).   -  person George Stocker    schedule 07.05.2013
comment
Спасибо за совет @GeorgeStocker - сейчас приступаю к редактированию. :)   -  person Jen    schedule 07.05.2013
comment
Похоже, вы теперь используете другой код для анализа фида, и новая ошибка связана с этим изменением. Если это так, я бы открыл новую тему (вместо того, чтобы смешивать проблемы) и закрыл эту. Похоже, что ответ на первоначальный вопрос заключается в том, что тег cffeed CF8 не может анализировать этот канал. Однако проблема, кажется, решена в более поздних версиях, т.е. CF9/10.   -  person Leigh    schedule 08.05.2013


Ответы (1)


По общему мнению, тег <cffeed> CF8 не может анализировать ленту NYT. Однако проблема, кажется, решена в более поздних версиях, т.е. CF9/10.

person Jen    schedule 08.05.2013
comment
Это поможет другим узнать, что вы использовали вместо этого. Вы захватили ленту с помощью cfhttp, а затем использовали xmlParse(cfhttp.fileContent)? - person Leigh; 08.05.2013
comment
Я восстановил его - я просто не хотел, чтобы вы больше тратили свое время. :( ... как вы можете сказать, я вроде как над этим. :( - person Jen; 08.05.2013