2013-06-24 3 views
0

Я работаю над проектом, в котором мое приложение размещено в Google App Engine, и использует Jsoup html библиотеку разбора. В моем приложении я использую TaskQueues с queueu по умолчанию, единственной задачей в этой очереди является подключение к URL-адресу и начало разбора страницы. В файлах журналов не появляется никаких ошибок или предупреждений, он просто выходит, так как не видит строку Jsoup, анализируя документ. Вот отрывок из моего кода:Jsoup1.7.2 не работает google app engine 1.7.5

log.warning("Before connection"); 
Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); 
log.warning("After connection"); 

TaskQueue отлично работает, я проверил, и я 100% уверен, что нет никаких проблем с ним. Я попытался вручную подключиться к веб-странице и загрузить его, а затем передать его Jsoup и начать его синтаксический анализ, соединение отлично работает, и веб-страница была успешно загружена, но Jsoup не смог ничего сделать. Моя самая большая проблема заключается в том, что в файле журнала нет ошибок и никаких предупреждений; поэтому я не знаю, что происходит.

ответ

0

Проблема заключалась в том, что я использовал Jsoup 1.7.2, который явно не очень совместим с Google App Engine. Я переключился на Jsoup 1.7.1, и проблема была исправлена.

0

Оператор приложения ограничивает количество классов, я бы предположил, что либо Jsoup.connect (url), либо метод .parse зависит от одного из этих ограниченных классов и выдает исключение.

Чтобы исключить возможность причинения проблем Jsoup.connect то я предлагаю вам использовать App Engine URL Fetch, чтобы получить строку страницы в URL, а затем использовать:

Document doc = Jsoup.parse(htmlString); 

Однако, если есть проблемы с синтаксический анализ, тогда вам действительно нужно получить ошибки/протоколирование, и пока еще много информации, чтобы что-то предложить. Попробуйте поставить проблемный код в блок try-catch и посмотреть, можете ли вы поймать исключение.

Кроме того, попробуйте использовать более позднюю версию GAE SDK (1.8.1 - текущий). Ранее у меня был конфликт с методом проверки GAE SDK, который мешал Jsoup, так что это может быть в случае с 1.7.5.

+0

спасибо, Марк, я решил вопрос :) –