2015-01-13 4 views
0

Я использую gargoylesoftware htmlunit в java, чтобы получить веб-страницы после запуска их javascript (так как вы не можете сделать это со встроенными java-библиотеками). Я использую это в webscraper, так что этот код в настоящее время работает много много раз без проблем, однако совершенно случайно я получаю эту ошибку каждый час или около того после запуска программы:Ошибка при использовании htmlunit

Jan 13, 2015 8:03:52 AM com.gargoylesoftware.htmlunit.WebConsole info 
INFO: ThreadStats: couldn't get the catalog (undefined) 
Jan 13, 2015 8:03:52 AM com.gargoylesoftware.htmlunit.WebConsole info 
INFO: ThreadStats: couldn't get the catalog() 

Код этой ошибки появляется на это:

final HtmlPage page = webClient.getPage(URIget.getSearchURL(ToSearch, board)); 

Я уверен, что ошибка не происходит из моего метода URI.getSearchURL, так как она ничего сверхъестественного не делать, только придерживаться нескольких строк вместе

+0

Значит, вы просто не хотите, чтобы сообщение появлялось? или вы хотите знать, почему он появляется? – Arya

+0

@Arya Оба, если это возможно. – user3537381

ответ

0

Попробуйте положить их после креа ting WebClient, и он должен помешать сообщению показывать

  webClient.setCssErrorHandler(new SilentCssErrorHandler()); 
      LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.host.ActiveXObject").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDocument").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.html.HtmlScript").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit.javascript.host.WindowProxy").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF); 
      java.util.logging.Logger.getLogger("org.apache").setLevel(Level.OFF); 
+0

Это может затмить ошибку, но это не помешает ей и нарушит мою программу. – user3537381

+0

@ user3537381 Я понятия не имел, что это действительно нарушает вашу программу. Вы правы, это только предотвращает его печать. Другим решением было бы использовать try/catch для обработки ошибки таким образом, чтобы она не остановила вашу программу, и вы можете контролировать, что происходит, когда происходит ошибка. – Arya

+0

На данный момент я использую try, catch solution, хотя это не самый лучший из решений. – user3537381

Смежные вопросы