Проверьте RSS-канал в Java-программе, которая использует org.apache.commons.feedparser для анализа каналов. - PullRequest
1 голос
/ 12 января 2012

В нашем приложении мы используем API Apache Commons Feedparser, который работает хорошо, однако я собираюсь проверить URL канала перед его анализом.ниже приведены три вида исключений, которые мы используем в случае возникновения каких-либо исключений во время синтаксического анализа:

catch (FeedParserException e) {
        log.error("FeedParser Exception for RSS AgentID:: "+rssAgentId+" error message "+e.getMessage());
    } catch (NetworkException e) {
        log.error("Network Exception for RSS AgentID:: "+rssAgentId+" error message "+e.getMessage());
    } catch (IOException e) {
        log.error("IOException Exception for RSS AgentID:: "+rssAgentId+" error message "+e.getMessage());          
    }

При использовании нескольких URL без фида, таких как "www.rediff.com", в идеале элемент управления должен находиться вFeedParserException, поскольку он не является действительным URL-адресом фида, но на удивление это не так, он выдает следующие предупреждения:

[2012-01-12 14:17:08,010] WARN (Thread: http-8080-1) org.apache.commons.feedparser.FeedFilter.doDecodeEntities(223) | Filter encountered unknown entities
[2012-01-12 14:17:08,018] WARN (Thread: http-8080-1) org.apache.commons.feedparser.FeedFilter.doDecodeEntities(226) | Filter has decoded latin1 entities.

и после длительного ожидания, скажем, около 127 секунд, дает тайм-аут.* Может ли быть способ, которым я могу сделать лучшую проверку перед синтаксическим анализом, чтобы мне не пришлось ждать 2 минуты, чтобы отобразить сообщение об ошибке, ИЛИ есть способ, которым я могу уменьшить это время ожидания.

...