java - Spring 错误: No mapping found for HTTP request with URI [/myproject/] in DispatcherServlet with name 'appServlet'

标签 java spring spring-mvc

使用 Spring security 设置默认安全页面(在内存中)后,我收到以下错误:

No mapping found for HTTP request with URI [/myproject/] in DispatcherServlet with name 'appServlet'

更新: 通过将组件扫描(扫描我的安全包)从 servlet-context.xml 移动到 root-context.xml 解决了这个问题

最佳答案

您的错误消息告诉 No mapping found for HTTP request with URI [/addressbook/] 。换句话说,您还没有为URL /addressbook映射一个请求映射。

如果您希望项目的基本 URL 为 /addressbook然后更改 web.xml 如下

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    ....
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/addressbook/*</url-pattern>
</servlet-mapping>

Controller

@Controller
public class HomeController {
    @RequestMapping(value="/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        return "home";
    }
}

然后转到浏览器并输入以下内容。应该有一个/最后。

http://hostname:port/addressbook/

但是如果你想改变上下文根,你不能通过web.xml来做到这一点。上下文根不是标准 web.xml 文件的一部分。您可以通过在 eclipse 中执行以下操作来更改此设置

  1. 在项目属性中,单击 Web Project Settings (假设您处于动态 Web 项目中。)唯一的配置值是“Context root:”
  2. 将“上下文根”更改为 /addressbook
  3. 将 web.xml url-pattern 更改为 <url-pattern>/</url-pattern>
  4. 重建
  5. 从 tomcat 中删除项目
  6. 重新部署。

引自digitaljoel

关于java - Spring 错误: No mapping found for HTTP request with URI [/myproject/] in DispatcherServlet with name 'appServlet' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589692/

相关文章:

java - 分解 Java 字符串中的复合算术表达式

java - 如果存在特定的 DynamoDB 索引,如何从 Java API 检查

java - Spring Cloud Dataflow 文件启动器修改

java - Rest Api异常处理

java - Hibernate 不创建表 - Spring MVC

java - 带有 spring boot 的 tiles url 映射

java - 在 linux 上安装 JDK7

Java Stream - 将数据行收集到更少的行中,并将一列分组到集合中

java - 在spring mvc中找不到css文件等资源

Spring Data JPA 查询从一个连接表中选择所有值