Метод неприменим ошибка при использовании Jsoup в пользовательском коде Java

StackOverflow https://stackoverflow.com//questions/25039543

  •  21-12-2019
  •  | 
  •  

Вопрос

У меня возникли проблемы с использованием Jsoup в tJavaRow компонент в Talend.

Вот моя работа:

Job Layout

Через tLibraryLoad Я загружаю .jar файлы для Jsoup и библиотеки файлов java.io., а затем импортируйте их в tJavaRow_2 компонент:

import java.io.File;
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import org.jsoup.select.Elements;

А затем попробуйте запустить следующий код в основной части tJavaRow_2:

Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
        Elements el = document.select(".gutter10");
        Elements el = document.select(".gutter10");
        String result = el.text();
        String result = el.text();


        if(result.length() > 20)
        if(result.length() > 20)
            {context.lastpage = true;};

Пока что это кажется мне логичным.Но я получаю эту ошибку:

Talend Error

Можете ли вы помочь мне решить эту проблему?Я не понимаю, что делать с этого момента.

приложение:Java-код, который работает в Eclipse:

import java.io.File;
import java.io.File;
//import java.util.regex.*;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class regextest  {

    public static boolean regExChecker() throws IOException 
    {
        boolean x = false;
        Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/absolventa_testquery.txt"), "utf-8");
        Elements el = document.select(".gutter10");
        String result = el.text();

        if(result.length() > 20)
            {x = true;};

        //System.out.println(x);
        return x;
    }

    public static void main(String[] args) throws IOException{
        System.out.println(regExChecker()); 
    }
}
Это было полезно?

Решение

В вашем блоке кода отсутствует закрывающая скобка.Ваша первая строка должна быть такой:

Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");

Как бы то ни было, вы создаете файл по пути "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8" а затем просто передайте этот файловый объект (это не будет правильный файловый объект, но по какой-то причине компилятор этого не заметил) методу синтаксического анализа Jsoup.

Глядя на Документация Jsoup единственный вызов метода для синтаксического анализа, который представляет собой одно значение, - это когда вы передаете ему HTML-документ в виде строки.Таким образом, он ожидает строку и вместо этого получает (поврежденный) файл.

Вторая ошибка - это та, которая действительно указывает на это, говоря, что вам не хватает закрывающей скобки для VariableInitializer.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top