1

我正在使用 Spring MVC 创建一个 RESTful 服务,使用 @Controller 和 @RequestMapping 注释来控制响应。我也使用 Maven 作为依赖管理系统。

在一个函数中,我在 @RequestMapping 中使用 URI 模板从 GET 请求中检索变量。此函数在完成时返回 JSON。

由于使用 URI 模板导致 JSTL 库出现问题(本质上,由于带有 JSTL 类的 ClassNotFoundException,我得到了 500 个状态代码),我不得不将以下依赖项添加到我的 Maven POM 文件中(这些来自我们的私有存储库,但您应该能够理解它们是什么):

<dependency>
  <groupId>javax.servlet.jsp.jstl</groupId>
  <artifactId>jstl-api</artifactId>
  <version>1.2-rev-1</version>
</dependency>
<dependency>
  <groupId>javax.el</groupId>
  <artifactId>el-api</artifactId>
  <version>2.2</version>
</dependency>

但是,由于添加了这些,我现在得到 404 错误,因为 Tomcat(在 Spring 下处理请求)正在尝试解析我的 URI,这通常是

localhost:9095/DiagnosticToolService/demo-object/1/json (当然 1 是我的 GET 变量)

到一个文件,特别是

本地主机:9095/DiagnosticToolService/WEB-INF/jsp/demo-object/1/json.jsp

当然,这个文件不存在。如何在 Tomcat 中关闭此自动 JSP 解析以使其正常工作?另外,那些是我需要添加来修复 500 错误的依赖项吗?500 错误和 404 错误如下所示:

500 错误 500 错误

404错误 404错误

4

1 回答 1

1

您是否在生成 JSON 的控制器方法上使用 @ResponseBody?从问题的描述来看,请求似乎没有发送到您的控制器,或者控制器的返回值被解释为视图名称。

您可以仅将方法签名发布在控制器上使用的映射吗?

于 2012-08-02T13:17:08.770 回答