2

Elasticsearch を実行して PDF のインデックスを作成しようとしています。私はJavaに精通していません。それが不平を言っているウィンドウサーバーは何ですか?どうすれば修正できますか?

Jun 13 15:57:23 server.mydomain.com java[22345] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
Exception in thread "elasticsearch[index]-pool-2-thread-1" java.lang.InternalError: Can't connect to window server - not enough permissions.
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1627)
    at java.awt.Color.<clinit>(Color.java:263)
    at org.apache.pdfbox.pdmodel.PDPage.<clinit>(PDPage.java:80)
    at org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:212)
    at org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:218)
    at org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:184)
    at org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.java:211)
    at org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:322)
    at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:63)
    at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:140)
    at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
    at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
    at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
    at org.elasticsearch.plugin.mapper.attachments.tika.TikaExtended.parseToString(TikaExtended.java:48)
    at org.elasticsearch.index.mapper.attachment.AttachmentMapper.parse(AttachmentMapper.java:309)
    at org.elasticsearch.index.mapper.object.ObjectMapper.serializeValue(ObjectMapper.java:585)
    at org.elasticsearch.index.mapper.object.ObjectMapper.parse(ObjectMapper.java:449)
    at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:493)
    at org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:437)
    at org.elasticsearch.index.shard.service.InternalIndexShard.prepareCreate(InternalIndexShard.java:290)
    at org.elasticsearch.action.index.TransportIndexAction.shardOperationOnPrimary(TransportIndexAction.java:210)
    at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction.performOnPrimary(TransportShardReplicationOperationAction.java:532)
    at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$AsyncShardOperationAction$1.run(TransportShardReplicationOperationAction.java:430)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
4

2 に答える 2

7

PDF を適切にインデックス化できるようにするために、ElasticSearch は Apache Tika にテキストの抽出を要求しています。Apache Tika は、処理のためにファイルを解析するように Apache PDFBox に要求しています。PDF の動作方法のため、PDFBox は Java AWT 呼び出しを使用して、フォントや色などを処理する必要があります。

お使いのマシンは現在、Java がグラフィカル操作を実行するように正しく設定されていないため、PDFBox が AWT を使用して PDF を処理しようとすると、異常終了します。

選択肢は 2 つあります。1 つはグラフィカルなセットアップを完了することで、もう 1 つは Java をヘッドレス モードで実行するように指示することです。

If you google for your error message, then you'll find lots of helpful answers about how to perform the appropriate OSX setup for either option. This one looks to be a good example. In common with most of the unix varients of Java, if you run Java with

java -Djava.awt.headless=true

Then it'll use a headless mode, and won't hit permissions issues with the real graphics system.

于 2012-06-13T23:09:55.663 に答える
2

これは、アプリケーションがヘッドレス環境でAWTを使用しようとした結果です。

これを修正するには、AWTにヘッドレスモードを使用するように指示するオプションを指定してアプリケーションを起動します。

-Djava.awt.headless=true
于 2012-06-13T23:08:17.377 に答える