Lire-0.9.4-beta 1 DocumentBuilderの初期化エラー

2334 ワード

エラー原因:0.9.4-beta 1このバージョンのnet.semanticmetadata.lire.indexing.パケットの下にLshBitSamplingという名前のobjのファイル
本人はMavenを利用してLireフレームワークを導入したが、Maven Repositoryの唯一のバージョンは0.9.4-kzwang-beta 1(リンクを開くをクリック)
テスト中に初期化エラーが表示されました.
Exception in thread "main" java.lang.ExceptionInInitializerError  
    at net.semanticmetadata.lire.DocumentBuilderFactory.getDefaultDocumentBuilder(DocumentBuilderFactory.java:67)  
  
Caused by: java.lang.NullPointerException  
    at java.util.zip.InflaterInputStream.<init>(Unknown Source)  
    at java.util.zip.GZIPInputStream.<init>(Unknown Source)  
    at java.util.zip.GZIPInputStream.<init>(Unknown Source)  
    at net.semanticmetadata.lire.indexing.hashing.BitSampling.readHashFunctions(BitSampling.java:148)  
    at net.semanticmetadata.lire.impl.GenericDocumentBuilder.<clinit>(GenericDocumentBuilder.java:89)  
    ... 2 more

DocumentBuilderファクトリでDocumentBuilderの初期化中にエラーが発生しました
「at.net.semanticmetadata.lire.impl.GenericDocumentBuilder.(GenericDocumentBuilder.java:89)」という場所から、エラーを探し始めました
最後のレイヤ「at java.util.zip.InflaterInputStream.(Unknown Source)」まで、ソースコードを見てみました.
public InflaterInputStream(InputStream in, Inflater inf, int size) {  
        super(in);  
        if (in == null || inf == null) {  
            throw new NullPointerException();  
        } else if (size <= 0) {  
            throw new IllegalArgumentException("buffer size <= 0");  
        }  
        this.inf = inf;  
        buf = new byte[size];  
    }

「if(in==null|inf==null){throw new NullPointerException();}」というコードは、空のポインタが例外である理由がinまたはinfが空であることを示しますが、infはGZIPInputStreamでnew Inflater(true)によって作成され、この作成文はエラーを報告していません.infが空でないことを示しています.
だからエラーの原因はinが空で、このinはBitSamplingです.readHashFunctionsメソッドで「BitSampling.class.getResourceAsStream(hashFunctionsFileName)」を使用して作成された
hashFunctionsFileNameの値はLshBitSampling.obj.
ここに着いて、私は突然何かを思い出した.△何なのか分からないが、どうせ私は自然に次の動作をする...
そこで、以前にlireフレームワークを正常に実行できたプロジェクトを探しました.このプロジェクトのLireフレームワークバージョンは0.9.4-beta 2です.
私がnetを開くまで何度も開けましたsemanticmetadata.lire.indexing.hashingパッケージの場合、すべてのエラーが解決しました.私が新しいプロジェクトに導入した0.9.4-beta 1の
net.semanticmetadata.lire.indexing.バッグの下にLshBitSamplingはありませんobjファイルですが、以前のプロジェクトにはこのファイルがありました.