我正在设计一个基于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
。
我很困惑为什么这不起作用,因为我完全按照他们的代码。
答案 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版本。这对我来说是个问题。