Кварцевый планировщик + ошибка соединения http crawler4J
Я пытаюсь объединить Quartz планировщик с crawler4j.
Проблема в том, что когда я выполняю код C4J в основном методе, он работает хорошо, но в кварцевом методе Job execute() возникает ошибка соединения Http.
Мы работаем за прокси, но он уже настроен на C4j, и мы даже попробовали в Quartz.
Знаете ли вы, если Кварц может заблокировать соединение Http?
Stacktrace:
Exception in thread "Crawler 1" java.lang.NoSuchFieldError: DEF_PROTOCOL_CHARSET
at org.apache.http.auth.params.AuthParams.getCredentialCharset(AuthParams.java:64)
at org.apache.http.impl.auth.BasicScheme.authenticate(BasicScheme.java:157)
at org.apache.http.client.protocol.RequestAuthenticationBase.authenticate(RequestAuthenticationBase.java:125)
at org.apache.http.client.protocol.RequestAuthenticationBase.process(RequestAuthenticationBase.java:83)
at org.apache.http.client.protocol.RequestProxyAuthentication.process(RequestProxyAuthentication.java:89)
at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:108)
at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:174)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:515)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
at edu.uci.ics.crawler4j.fetcher.PageFetcher.fetchHeader(PageFetcher.java:156)
at edu.uci.ics.crawler4j.crawler.WebCrawler.processPage(WebCrawler.java:232)
at edu.uci.ics.crawler4j.crawler.WebCrawler.run(WebCrawler.java:189)
at java.lang.Thread.run(Thread.java:662)
Метод execute ():
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
JobKey key = context.getJobDetail().getKey();
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String[] sitesTab = dataMap.getString("sites").split(";");
int numberOfCrawlers = 2;
String storageFolder = "C:\\...";
CrawlConfig config = new CrawlConfig();
config.setProxyHost("...");
config.setProxyPort(3128);
config.setProxyUsername("...");
config.setProxyPassword("...");
config.setMaxDepthOfCrawling(2);
config.setCrawlStorageFolder(storageFolder);
config.setIncludeBinaryContentInCrawling(true);
String[] crawlDomains = new String[] { "http://www.....fr/" };
PageFetcher pageFetcher = new PageFetcher(config);
RobotstxtConfig robotstxtConfig = new RobotstxtConfig();
robotstxtConfig.setEnabled(false);
RobotstxtServer robotstxtServer = new RobotstxtServer(robotstxtConfig,
pageFetcher);
CrawlController controller;
try {
controller = new CrawlController(config, pageFetcher,
robotstxtServer);
for (String domain : crawlDomains) {
controller.addSeed(domain);
}
int minWidth = 150;
int minHeight = 150;
Pattern p = Pattern.compile(".*(\\.(bmp|gif|jpe?g|png))$");
SportifsWebCrawler.configure(crawlDomains, storageFolder, p,
minWidth, minHeight);
controller.start(SportifsWebCrawler.class, numberOfCrawlers);
} catch (Exception e) {
e.printStackTrace();
}
}
Спасибо за помощь:)