java - Playframework 2.x Apache Tika 问题

标签 java parsing playframework playframework-2.0 apache-tika

我正在使用 upload 从那时起在获取上传文件后上传文件 我正在使用 Apache tika 从上传的文件中提取 content,metadata 并应用,但出现了一些错误

看看我的playframework Controller 代码:

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());
    }

但是当我运行这个网络应用程序时,我正在使用命令:

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

它给出了错误:

如果你想看到完整的错误然后full error

一些错误是:

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 文件。

请给我一些解决此问题的想法。

最佳答案

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

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

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

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

关于java - Playframework 2.x Apache Tika 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360570/

相关文章:

java - 重新定义从另一个编译方法调用的方法的方法签名

java - AST eclipse,带参数的方法调用

c++ - 需要 C++ 函数的帮助来解析/显示 XML 序列化

java - PlayFramework2.4.x 中的自定义错误页面

大型 WSDL( Play Framework )上的 Java 内存不足错误

java - 将货币值存储为 Doubles 但使用 BigDecimal 计算值

java - JAX-RS - 没有根节点的 JSON

powershell - Powershell使用split只返回第n个元素

parsing - 如何将文本文件转换为麦芽解析器的 CoNLL 格式?

java - 在 Play 框架中使用 ElementCollection 时出现 LazyInitializationException