Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Playframework 2.x Apache Tika问题_Java_Parsing_Playframework_Playframework 2.0_Apache Tika - Fatal编程技术网

Java Playframework 2.x Apache Tika问题

Java Playframework 2.x Apache Tika问题,java,parsing,playframework,playframework-2.0,apache-tika,Java,Parsing,Playframework,Playframework 2.0,Apache Tika,我使用upload从那时开始上传文件在获得上传文件后,我使用上传文件的顶部摘录Apache tikacontent,metadata,并应用,但出现了一些错误 查看我的playframework控制器代码: public static Result upload() { MultipartFormData body = request().body().asMultipartFormData(); FilePart picture = body.getFile(&

我使用upload从那时开始上传文件在获得上传文件后,我使用上传文件的顶部摘录
Apache tika
content,metadata,并应用,但出现了一些错误

查看我的playframework控制器代码

public static Result upload() {
        MultipartFormData body = request().body().asMultipartFormData();
        FilePart picture = body.getFile("doc");
        if (picture != null) {

            String fileName = picture.getFilename();
            int eof = fileName.lastIndexOf('.');
            String ext = fileName.substring(eof + 1);
            
            file = picture.getFile();
            
            InputStream is;
            try {
                is = new FileInputStream(file);
            } catch (FileNotFoundException e) {
                
                e.printStackTrace();
            }
            Parser ps=new AutoDetectParser();
            
            BodyContentHandler bch=new BodyContentHandler();
            
            Metadata metadata=new Metadata();
            
            try {
                ps.parse(is, bch, metadata, new ParseContext());
            } catch (IOException | SAXException | TikaException e) {
                
                e.printStackTrace();
            }
            
            String sw=bch.toString();

            
            return ok(sw+" entity extracted and saved" + ext);
      }else {
        flash("error", "Missing file");
        return redirect(routes.Application.index());
    }
但是当我运行这个web应用程序时我使用的是
命令

rahul@inext:~/playframwrk apps/EntWebPrj$ play
        [info] Loading project definition from /home/rahul/playframwrk apps/EntWebPrj/project
[info] Set current project to EntWebPrj (in build file:/home/rahul/playframwrk%20apps/EntWebPrj/)
       _            _
 _ __ | | __ _ _  _| |
| '_ \| |/ _' | || |_|
|  __/|_|\____|\__ (_)
|_|            |__/
play! 2.1.2 (using Java 1.7.0_25 and Scala 2.10.0), http://www.playframework.org
> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.
[EntWebPrj] $ ~run
它给出了错误

如果要查看完全错误,则

一些错误是:

sbt.PlayExceptions$CompilationException: Compilation error[error: package org.apache.tika.exception does not exist]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
    at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:349) ~[na:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:346) ~[na:na]
    at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
[warn] play - No application found at invoker init
我添加了tika jar文件。


给我一些想法来解决这个问题。

我认为您还需要添加tika-parsers-X.Y.jar文件(其中X.Y是版本,例如1.4)。

我认为您还需要添加tika-parsers-X.Y.jar文件(其中X.Y是版本,例如1.4)。

向Playframework添加依赖项可以通过两种方式完成:

  • 非托管依赖项:直接将jar添加到项目根目录下的/lib文件夹中,然后重新启动play应用程序

  • 托管依赖项:将jar添加到build.sbt文件中,如以下示例所示:

    val appDependencies = Seq(
        jdbc, cache,
        "org.apache.tika" % "tika" % "0.3"
    )
    

  • 向Playframework添加依赖项可以通过两种方式完成:

  • 非托管依赖项:直接将jar添加到项目根目录下的/lib文件夹中,然后重新启动play应用程序

  • 托管依赖项:将jar添加到build.sbt文件中,如以下示例所示:

    val appDependencies = Seq(
        jdbc, cache,
        "org.apache.tika" % "tika" % "0.3"
    )
    

  • 您是如何将jar添加到项目中的呢?我正在使用eclipse。我右键点击了项目,在项目的属性中有一个标签“java构建路径”,然后点击java构建路径和获取库,点击添加外部jar并选择tika jar。在控制台中播放不会意识到您的Eclipse更改,会吗?@maksimov加载tika jar文件后,我重新加载了我的play framework应用程序,但出现了错误。请确保tika jar(及其依赖项!)在运行时也可用。听起来好像您只是在编译时设置它们,所以它们在代码执行时不存在。您到底是如何将jar添加到项目中的?我使用的是eclipse。我右键点击了项目,在项目的属性中有一个标签“java构建路径”,然后点击java构建路径和获取库,点击添加外部jar并选择tika jar。在控制台中播放不会意识到您的Eclipse更改,会吗?@maksimov加载tika jar文件后,我重新加载了我的play framework应用程序,但出现了错误。请确保tika jar(及其依赖项!)在运行时也可用。听起来你只是在编译时设置了它们,所以当你的代码执行器给我tika-parsers-1.4.jar文件@ChrisIf的链接时它们就不存在了,只要在
    1.4版的
    tika解析器上添加一个依赖项,maven就会为您下载所有jar及其依赖项给我tika-parsers-1.4.jar文件@ChrisIf您正在使用maven,只需在
    1.4版的
    tika解析器上添加一个依赖项,maven就会为您下载所有jar及其依赖项