В нашем приложении мы используем 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 минуты, чтобы отобразить сообщение об ошибке, ИЛИ есть способ, которым я могу уменьшить это время ожидания.