Methode nicht anwendbar Fehler bei der Verwendung von Jsoup in benutzerdefiniertem Java-Code

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

  •  21-12-2019
  •  | 
  •  

Frage

Ich habe Probleme mit der Verwendung von Jsoup in einem tJavaRow komponente in Talend.

Hier ist mein Job:

Job Layout

Durch tLibraryLoad Ich lade die .jar dateien für Jsoup und die java.io.File Bibliothek und importieren Sie sie dann in die tJavaRow_2 Komponente:

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;

Und dann versuchen Sie, den folgenden Code im Hauptteil des 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;};

Scheint mir bisher logisch.Aber ich bekomme diesen Fehler:

Talend Error

Können Sie mir helfen, dieses Problem zu lösen?Ich verstehe nicht, was ich von diesem Punkt an tun soll.

ANHANG:Java-Code, der in Eclipse funktioniert:

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()); 
    }
}
War es hilfreich?

Lösung

Ihnen fehlt eine schließende Klammer in Ihrem Codeblock.Ihre erste Zeile sollte sein:

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

So wie es ist, erstellen Sie eine Datei aus dem Pfad "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8" und dann übergeben Sie einfach dieses Dateiobjekt (es wird kein richtiges Dateiobjekt sein, aber aus irgendeinem Grund hat der Compiler dies nicht erkannt) an die Analysemethode von Jsoup.

Blick auf Dokumentation von Jsoup der einzige Methodenaufruf zum Parsen, der ein einzelner Wert ist, ist, wenn Sie ein HTML-Dokument in einer Zeichenfolge an ihn übergeben.Es erwartet also eine Zeichenfolge und erhält stattdessen eine (defekte) Datei.

Der zweite Fehler ist derjenige, der wirklich darauf hinweist, indem er sagt, dass Ihnen eine schließende Klammer für den VariableInitializer fehlt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top