EclipseJava。朗。反思。使用jsoup时调用TargetException
我正在尝试解析Web服务中的html文档。根据谷歌的说法,jsoup似乎是更快更简单的html解析器,因此我将其包括在我的项目中,但我得到了异常“异常:java.lang.reflect.InvocationTargetException消息:java.lang.reflect.InvocationTargetException”我尝试了所有方法,但没有任何结果。请帮忙
我添加了jsoup。jar在我的项目的Library类路径中。 我正在Windows XP上使用Eclipse Luna Java1.7ApacheTomcat7.0
这是我的代码:
try {
url = new URL("http://consulta.muniguate.com/emetra/despliega.php?tplaca="+tplaca+"&nplaca="+nplaca);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null) {
result += line;
}
Document doc = Jsoup.connect(result).get();
String title= doc.title();
System.out.println(title);
rd.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
这是完整的代码:
package clases;
import java.io.BufferedReader;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.InvocationTargetException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
@WebService(serviceName = "Transito")
public class Transito {
@WebMethod(operationName = "consultar_saldo")
public String consultar_saldo(String tplaca, int nplaca) throws InvocationTargetException {
String result = "";
try {
Document doc= Jsoup.connect("http://www.muniguate.com/utilities/remisiones.htm?tplaca="+tplaca+"&nplaca="+nplaca).userAgent("Mozilla").get();
String result = doc.title();
System.out.println(result);
} catch (Exception e){
e.getCause();
}
return result;
}
}
# 1 楼答案
那样的话,你就注定要失败,因为我们已经没有什么可以尝试的了
但我们假设你并不是什么都试过。让我们假设documentation of ^{} 实际上是在说真的,这个方法只用于创建到应该解析的资源的连接,而不是解析它。它的^{} 方法用于从创建的连接连接到资源,对其进行解析并将其作为
Document
返回所以这个方法代替资源的HTML文本,将需要连接所需的信息,比如URL
因此,与其手动创建
HttpURLConnection
并读取其HTML代码,不如将表示URL的字符串传递给Jsoup.connect()
,然后使用get()
连接并解析此资源所以不是
简单使用
现在你应该可以使用
# 2 楼答案
Jsoup.connect()
接受url字符串,而不是响应内容