0

使用JSoup 1.6.3调用ignoreHttpErrors(boolean)时出现此错误

线程“main”java.lang.Error 中的异常:未解决的编译问题:方法 ignoreHttpErrors(boolean) 未定义为 Connection 类型

这是我的设置的参考问题吗?知道如何解决吗?

Eclipse 验证代码没有错误和 1 个警告。

以下代码将无法编译。

try {

            Connection.Response response =   Jsoup.connect(url)
                    .userAgent("Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5")
                    .timeout(10000)
                    .followRedirects(false)
                    .ignoreHttpErrors(true)  // <--- Underlined red in eclipse plus the error msg
                    .execute();

            int statusCode = response.statusCode();
            System.out.println("received status code : " + statusCode);
            if(statusCode == 200) {
                System.out.println("Found : " + statusCode);                    
            }
            else if(statusCode == 404){
                System.out.println("Not Found : " + statusCode);                    
            }
            else if(statusCode == 302){
                System.out.println("Page Moved : " + statusCode);                   
            }

        } catch (SocketTimeoutException e) {
            System.out.println("Timeout occured");

        } catch (IOException e) {
            System.out.println("I/O problem");
        } 

编辑 1

import org.jsoup.Connection;
import org.jsoup.nodes.Document;

System.out.println(Connection.class.getProtectionDomain().getCodeSource().getLocation());
System.out.println(Document.class.getProtectionDomain().getCodeSource().getLocation());

输出

file:/C:/opt/glassfish/glassfish/modules/bean-validator.jar
file:/C:/opt/glassfish/glassfish/modules/bean-validator.jar

嗯,完全不是我所期待的。我的 EAR 的库目录中有 jsoup-1.6.3.jar。调用代码位于 EAR 中打包的 EJB 中。

想法?

4

1 回答 1

1

ignoreHttpErrors()方法是自1.6.0以来的新方法。显然,您在类路径中的某个位置仍然有一个旧版本的 Jsoup,它在类加载中具有优先权。

要确定其在类路径中的确切位置,请执行以下命令

System.out.println(Connection.class.getProtectionDomain().getCodeSource().getLocation());

JsoupConnection显然在哪里。然后应该在给定位置删除重复的旧版本 JAR 文件。

于 2012-08-01T13:17:05.820 回答