Spring错误:在DispatcherServlet中找不到带有URI [/ myproject /]的HTTP请求的映射,名称为' appServlet'

时间:2015-04-12 12:54:51

标签: java spring spring-mvc

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

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

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

1 个答案:

答案 0 :(得分:1)

你的错误消息告诉No mapping found for HTTP request with URI [/addressbook/]。换句话说,您尚未映射URL /addressbook

的请求映射

如果您希望项目的基本网址为/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
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文件的一部分。您可以通过在日食中执行以下操作来更改此操作

  1. 在项目属性中,单击Web Project Settings(假设您处于动态Web项目中。)唯一的配置值是&#34;上下文根:&#34;
  2. 更改&#34;上下文根&#34;到/addressbook
  3. 将web.xml网址格式更改为<url-pattern>/</url-pattern>
  4. 重建
  5. 从tomcat中删除项目
  6. 重新部署。
  7. 引自digitaljoel