【问题标题】:Tomcat trying to resolve JSP files in RESTful Spring MVC ServiceTomcat 尝试在 RESTful Spring MVC 服务中解析 JSP 文件
【发布时间】:2012-07-30 17:23:18
【问题描述】:

我正在使用 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 变量)

到一个文件,特别是

localhost:9095/DiagnosticToolService/WEB-INF/jsp/demo-object/1/json.jsp

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

500 错误

404错误

【问题讨论】:

    标签: java spring model-view-controller jsp tomcat


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-28
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      相关资源
      最近更新 更多