2016-03-15 48 views
-1

我有利用IKVM涉及用於內Lucene的使用中提取文本和元數據的目的運行蒂卡(1.2),一個小型圖書館。我搶我們使用從CMS文檔和圖像路徑,並通過他們經過這裏:IKVM C#實現蒂卡 - 的NoClassDefFoundError - sun.java2d.Disposer

public TextExtractionResult Extract(string filePath) 
    { 

     var parser = new AutoDetectParser(); 
     var metadata = new Metadata(); 
     var parseContext = new ParseContext(); 
     Class parserClass = parser.GetType(); 
     parseContext.set(parserClass, parser); 

     try 
     { 
      // Attempt to fix ImageParser "NoClassDefFoundError" 
      java.lang.System.setProperty("java.awt.headless", "true"); 

      var file = new File(filePath); 
      var url = file.toURI().toURL(); 
      using (InputStream inputStream = TikaInputStream.get(url, metadata)) 
      { 
       parser.parse(inputStream, getTransformerHandler(), metadata, parseContext); 
       inputStream.close(); 
      } 

      return AssembleExtractionResult(_outputWriter.toString(), metadata); 
     } 
     catch (Exception ex) 
     { 
      throw new ApplicationException("Extraction of text from the file '{0}' failed.".ToFormat(filePath), ex); 
     } 
    } 

只有當文件.png,它炸彈與此錯誤:

enter image description here

似乎好像它最可能來自Tika的ImageParser

對於那些有興趣誰 - 你可以在這裏看到getTransformerHandler()

private TransformerHandler getTransformerHandler() 
    { 

     var factory = TransformerFactory.newInstance() as SAXTransformerFactory; 
     TransformerHandler handler = factory.newTransformerHandler(); 
     handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "text"); 
     handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes"); 
     handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "UTF-8"); 

     _outputWriter = new StringWriter(); 
     handler.setResult(new StreamResult(_outputWriter)); 
     return handler; 
    } 

我環顧四周,並保持所指向的直接運行無頭的,所以我已經嘗試過,沒有運氣。因爲這是IKVM中的C#實現,是否缺少了一些內容?它適用於所有其他文件,據我可以告訴(.jpeg.docx.pdf等)。

感謝那些誰知道更多關於提卡+ IKVM實現比我好。

+0

提卡1.2是絕對古!當你升級到最近模糊的東西時會發生什麼? – Gagravarr

+0

@Gagravarr - 我會更新並回復你。謝謝! –

+0

@Gagravarr - 我更新到最新的.NET蒂卡lib和其他依賴,和它的工作就像一個魅力。謝謝! - 如果你想發佈一個答案,我會給你。 –

回答