Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 无法使用Scala和Spring MVC 3返回JSON_Java_Spring_Scala_Spring Mvc - Fatal编程技术网

Java 无法使用Scala和Spring MVC 3返回JSON

Java 无法使用Scala和Spring MVC 3返回JSON,java,spring,scala,spring-mvc,Java,Spring,Scala,Spring Mvc,我正在将Java Spring控制器类转换为Scala。在Java中,返回JSON的控制器方法定义如下: @RequestMapping(value = "/search", method = RequestMethod.GET) public @ResponseBody String[] searchFoods(@RequestParam("term") String searchTerm, Principal principal) { ... } 这正如预期的那样有效。Scala中的相同方

我正在将Java Spring控制器类转换为Scala。在Java中,返回JSON的控制器方法定义如下:

@RequestMapping(value = "/search", method = RequestMethod.GET)
public @ResponseBody String[] searchFoods(@RequestParam("term") String searchTerm, Principal principal) { ... }
这正如预期的那样有效。Scala中的相同方法如下所示:

@RequestMapping(value = Array("/search"), method = Array(RequestMethod.GET))
def searchFoods(@RequestParam("term") searchTerm: String, principal: Principal): java.util.List[String] @ResponseBody = { ... }
但是,每当请求此路径时,我都会遇到以下异常:

2011-10-09 09:06:19.980:WARN::/searchpath/search.html
javax.servlet.ServletException: Could not resolve view with name 'searchpath/search' in servlet with name 'dispatcher'
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1029)

web服务器返回HTTP 500错误。可以同时使用Scala和Spring MVC 3返回JSON吗?

看起来问题不是JSON,而是路径解析。尝试将方法批注更改为:

@RequestMapping(value = Array("/searchpath/search"), method = Array(RequestMethod.GET))

有关完整示例,请参阅。

看起来我把@ResponseBody放错了位置。它需要出现在方法定义之前:

@RequestMapping(value = Array("/search"), method = Array(RequestMethod.GET))
@ResponseBody
def searchFoods(@RequestParam("term") searchTerm: String, principal: Principal): java.util.List[String]  = { ... }

我以前试过这个,但忘了清理我的项目。将注释移动到正确的位置,然后进行清理和重建后,一切都恢复正常。谢谢

我们有未过滤,蓝眼睛,欺骗,喷雾,保龄球,西特里姆等。。。Spring特别反对Scala实践,例如类型安全、支持不变性和不继承Java集合。有没有什么令人信服的理由让你不得不使用SpringMVC而不是几个更合适的原生Scala框架中的一个?嗨,Aaron,路径解析还可以。我的控制器在类级别上被注释为:@RequestMapping(value=Array(“/searchpath”)。我误读了错误。您是否使用Jackson JAR将对象自动转换为JSON?另外,请发布更多的堆栈跟踪。找到可能相关的帖子:。和另一个职位: