Linux Solr/Tika数据导入临时文件权限异常

Linux Solr/Tika数据导入临时文件权限异常,linux,solr,apache-tika,temporary-files,data-importer,Linux,Solr,Apache Tika,Temporary Files,Data Importer,我正在尝试使用ApacheTika和solr设置从文件导入数据。nfs装载的共享上有共享文档文件夹。很遗憾,我无法执行数据导入,1个文件已处理,然后出现异常: [http-8080-3] ERROR org.apache.solr.handler.dataimport.DocBuilder - Exception while processing: files document : null:org.apache.solr.handler.dataimport.DataImportHandler

我正在尝试使用ApacheTika和solr设置从文件导入数据。nfs装载的共享上有共享文档文件夹。很遗憾,我无法执行数据导入,1个文件已处理,然后出现异常:

[http-8080-3] ERROR org.apache.solr.handler.dataimport.DocBuilder - Exception while processing: files document : null:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to read content Processing Document # 2
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
....
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.io.IOException: Access denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1006)
    at java.io.File.createTempFile(File.java:1989)
    at org.apache.tika.io.TemporaryResources.createTemporaryFile(TemporaryResources.java:66)
    at org.apache.tika.io.TikaInputStream.getFile(TikaInputStream.java:533)
    at org.apache.tika.io.TikaInputStream.getFileChannel(TikaInputStream.java:564)
    at org.apache.tika.parser.microsoft.POIFSContainerDetector.getTopLevelNames(POIFSContainerDetector.java:373)
    at org.apache.tika.parser.microsoft.POIFSContainerDetector.detect(POIFSContainerDetector.java:165)
    at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:61)
    at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:113)
    at org.apache.solr.handler.dataimport.TikaEntityProcessor.nextRow(TikaEntityProcessor.java:140)
    ... 26 more
因此,在编写临时文件时,权限似乎存在一些问题。不幸的是,我不知道tike究竟在哪里尝试写入临时文件,所以我无法检查nfs上的权限。我检查了tika主文件夹核心配置和文档文件夹及子文件夹的权限-全部正常,包括有问题的文档

我还尝试将核心配置中的docs目录更改为同一nfs共享上的其他目录,一切正常。那么,你知道如何追踪我的问题吗

[编辑]
我只是注意到这不是真正的许可问题。一切都适用于.docx和.pdf文件。但是在.doc文件上它失败了。你有什么想法吗?

应该使用系统默认的临时目录,在Linux上通常是/tmp/。如果将java.io.tmpdir JVM属性设置为具有写入权限的目录,会发生什么情况?我应该在哪里设置?还要注意,只有文档文件会导致问题。其余的.docx、.pdf都被索引了。所以,当从输入流开始时,文件格式可以转换为纯文本,而不需要临时文件,但不是全部。将该属性传递给JVM的正确方式取决于如何启动JVM……好的,我将/usr/sbin/tomcat6中tomcat的-Djava.io.tmpdir直接设置为/tmp,然后重新启动tomcat。用户tomcat拥有/tmp权限,我可以登录到tomcat帐户并在/tmp中触摸文件。但是我的问题仍然存在,你们有没有像selinux这样的东西可以限制事情的发展?您的问题是,在运行时,JVM没有创建临时文件的正确权限。。。