Кварцевый планировщик + ошибка соединения 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();
    }


}

Спасибо за помощь:)

0 ответов

Другие вопросы по тегам