2016-06-21 9 views
0

私は最近、1.10の代わりにtika 1.13を使用するように既存のtikaプロジェクトを更新しました。私がしたのは、依存バージョンを1.10から1.13に変更することだけでした。プロジェクトは正常に構築されました。Tika 1.13 RuntimeException

private final AutoDetectParser _tikaExtractor; 
public MetaParser() 
    { 
     _tikaExtractor = new AutoDetectParser(); 
    } 

java.lang.RuntimeException: Unable to parse the default media type registry 
    at org.apache.tika.mime.MimeTypes.getDefaultMimeTypes(MimeTypes.java:580) 
    at org.apache.tika.config.TikaConfig.getDefaultMimeTypes(TikaConfig.java:69) 
    at org.apache.tika.config.TikaConfig.<init>(TikaConfig.java:218) 
    at org.apache.tika.config.TikaConfig.getDefaultConfig(TikaConfig.java:341) 
    at org.apache.tika.parser.AutoDetectParser.<init>(AutoDetectParser.java:51) 
    at com.app.tikamanager.MetaParser.<init>(MetaParser.java:54) 
    at com.app.services.MyService.HandleItemInThread(IntelligentDocumentsService.java:260) 
    at com.app.intelligentservicebase.ItemHandlerThread.run(ItemHandlerThread.java:41) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.tika.mime.MimeTypeException: Invalid type configuration 
    at org.apache.tika.mime.MimeTypesReader.read(MimeTypesReader.java:126) 
    at org.apache.tika.mime.MimeTypesFactory.create(MimeTypesFactory.java:64) 
    at org.apache.tika.mime.MimeTypesFactory.create(MimeTypesFactory.java:93) 
    at org.apache.tika.mime.MimeTypesFactory.create(MimeTypesFactory.java:170) 
    at org.apache.tika.mime.MimeTypes.getDefaultMimeTypes(MimeTypes.java:577) 
    ... 10 more 
Caused by: org.xml.sax.SAXNotRecognizedException: http://javax.xml.XMLConstants/feature/secure-processing 
    at org.apache.xerces.parsers.AbstractSAXParser.setFeature(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl.setFeatures(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(Unknown Source) 
    at org.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(Unknown Source) 
    at org.apache.tika.mime.MimeTypesReader.read(MimeTypesReader.java:119) 
    ... 14 more 

例外が私のMetaParserクラスのコンストラクタからスローされた、唯一のものはAutoDetectParserの初期化があります:私がしようとすると、アプリケーションを実行するたびに、まだ私はこの例外を取得しますOracle JDK 1.8.0_91-b14を使用してUbuntu 14.04でアプリケーションを実行しています。

私はオンラインで見ましたが、この例外は何度か言及されていましたが、OpenJDKをインストールする可能性のある修正がTikaの古いバージョン用であったのと、古いバージョンが同じJDKでうまく動作していたので、それが問題だとは思わない。

AutoDetectParserコンストラクタを呼び出す前に、やりたいことや初期化する必要がありますか?

+1

万が一クラスパスにXercesの古いコピーがありますか?もしそうなら、それを削除して(JVMのデフォルトのXMLプロセッサーに戻す)、それを最新のコピーにアップグレードするとどうなりますか? – Gagravarr

+1

Near-duplicate:[Java 8 "secure-processing org.xml.sax.SAXNotRecognizedException"でXMLをアンマーシャリングする際のエラー(http://stackoverflow.com/questions/25644023/error-unmarshalling-xml-in-java-8-安全処理org-xml-sax-saxnotrecognize) – Gagravarr

+0

@Gagravarrありがとうございました。 Xercesは依存関係に依存していました。私はそれを最新バージョンに更新しました。現在は動作しています。ありがとう –

答えて

4

回答をコメントにする - クラスパスには非常に古いバージョンのXercesがあります。あなたのJVMはこれをデフォルトのXML Parserとして選択しています。そのため、Tikaが「こんにちはJVM、安全なXMLパーサーを持てますか?

(ティカは、XML解析はこれが起こって開始された理由である、より安全なデフォルトの設定を含め、どのように行われるかに1.10 1.13までの期間に改良を加え)

あなたのどちらかがよう、あなたの古いのXercesのjarファイルを削除する必要がありますJVMが提供するXMLパーサーはまた、あなたはあなたに厄介な古いXercesのjarを見つけるのに苦労している場合は特に、有益Error unmarshalling XML in Java 8 “secure-processing org.xml.sax.SAXNotRecognizedException”にアドバイスのいくつかを見つけることができます使用、またはより最近のXercesのバージョン

に置き換えるが開始されますビルド!

+0

あなたのリンクに私のためのソリューションが含まれています。ありがとう@Gagravarr – crazyGuy

関連する問題