获取错误:Route中的Route()无法应用于String

时间:2014-05-27 20:46:26

标签: java mongodb apache-spark

我正在设计一个基于Java的MongoDB应用程序,但在使用Spark时我遇到了麻烦。

package com.tengen;

import spark.Request;
import spark.Response;
import spark.Route;
import spark.Spark;

public class HelloWorldSparkStyle {
    public static void main(String[] args) {
        Spark.get(new Route("/") {
            @Override
            public Object handle(Request request, Response response) {
                return "Hello World From Spark";
            }
        });
    }
}

在新Route("/")我收到错误Route() in route cannot be applied to java.lang.string

我很困惑为什么这不起作用,因为我完全按照他们的代码。 enter image description here

5 个答案:

答案 0 :(得分:28)

这可能应该发布在MongoDB类论坛上,但我遇到了类似的问题。看起来get方法从生成课程材料时改变了。 get现在需要路径和路径

  

获取(路径,路线)

import spark.Request;
import spark.Response;
import spark.Route;
import spark.Spark;

public class HelloWorldSparkStyle {
    public static void main(String[] args){

        Spark.get("/", new Route() {
                public Object handle(final Request request, final Response response){
                return "Hello World from Spark";
            }
        });
    }
}

答案 1 :(得分:1)

实际上我使用的是spark-core-1.1.1.jar它对我来说很好用,可能是较新版本的Spark(版本2.0.0)支持一些不同的语法。所以如果你使用的是最新版本那么你可以按照Mike给出的示例或者只是将spark-core-1.1.1.jar添加到您的类路径中,您的示例将正常工作

答案 2 :(得分:0)

这适用于Spark 1. Spark中Spark推荐以下内容(来源:http://sparkjava.com/news.html):

import static spark.Spark.*;

public class HelloWorld {
    public static void main(String[] args) {
        get("/", (req, res) -> "Hello World From Spark");
    }
}

答案 3 :(得分:0)

目前,Spark Java框架的实现需要使用Route之外的目录。因此,您必须更正以下代码:

public static void main(String[] args) {
    spark.Spark.port(PortNumber);
    Spark.get("/", new Route() {
            public Object handle(Request request, Response response) throws Exception {
                return "This is a sample page";
            }
        });
}

实际上,“/”是您程序的资源。如果你想改变默认的spark.Spark.port(PortNumber)。

答案 4 :(得分:0)

从您从讲义中下载的练习文件中更改POM文件中的Spark版本。这对我来说是个问题。