0

JSoup 1.6.3を使用してignoreHttpErrors(boolean)を呼び出すと、このエラーが発生します。

スレッド「メイン」の例外 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());

Connection明らかにJsoupのものはどこにありますか。次に、指定された場所にある重複した古いバージョンの JAR ファイルを削除する必要があります。

于 2012-08-01T13:17:05.820 に答える