Witam,
Mam taki problem, że dane w wątku nie są pobierane, dostaję null. th.start() powinno mi odpalić metodę run z klasy GSchoolarParser, metoda run powinna odpalić metodę loadDataToDocument, więc pytanie dlaczego dostaję null? Bez używania wątków działa, dostaję zawartość dokumentu.
package gscholar;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class GSchoolarParser implements Runnable {
private StringBuffer searchUrl;
private Document document;
private int connectionTimeoutMs; //10s
private Jsoup jSoup;
private String name;
private String lastname;
public GSchoolarParser(int connectionTimeOutMs) {
super();
this.connectionTimeoutMs = connectionTimeOutMs;
searchUrl = new StringBuffer();
searchUrl.append("https://scholar.google.pl/scholar?q=");
}
public Document loadDataToDocument(String name, String lastname){
//https://scholar.google.pl/scholar?q=Albert+Einstein&btnG=&hl=en&as_sdt=0%2C5
searchUrl.append(name);
searchUrl.append("+");
searchUrl.append(lastname);
searchUrl.append("&btnG=&hl=en&as_sdt=0%2C5");
try
{
this.document = Jsoup.connect(searchUrl.toString()).timeout(connectionTimeoutMs).userAgent("Chrome").get();
return document;
}
catch(IOException e)
{
e.printStackTrace();
return null;
}
catch(Exception e){
e.printStackTrace();
return null;
}
}
public Document getDocument() {
return document;
}
public void run() {
// TODO Auto-generated method stub
loadDataToDocument(name, lastname);
}
}
package gscholar;
import javax.print.Doc;
import org.jsoup.nodes.Document;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
GSchoolarParser gSchoolarParser = new GSchoolarParser(10000);
gSchoolarParser.setName("Albert");
gSchoolarParser.setLastname("Einstein");
//gSchoolarParser.loadDataToDocument("Albert", "Einstein"); to bez watkow dziala
Thread th = new Thread(gSchoolarParser);
th.start();
System.out.println(gSchoolarParser.getDocument());
}
}