支柱到春季迁移得到 404 错误


/spring/fetchAllUsers URL which am trying
web.xml
  <servlet>
            <servlet-name>user</servlet-name>
            <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
            <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springContext/dataSource.xml</param-value>
        </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>user</servlet-name>
            <url-pattern>/spring/</url-pattern>
        </servlet-mapping>
        Controller Code
@RequestMapping(value = "/getAllUsers", method = RequestMethod.POST)
@ResponseBody
@Transactional(propagation=Propogation.REQUIRED,rollBackFor=Exception.class)
public String fetchAllUsers(){
setInputStream(userDelegate.fetchAllUsers());
return success;

详:
我在用户服务中具有 mvc 注释驱动和 mvc 默认 servlet 处理程序.xml

    Getting 404 error code when try to access this URl when doing migration from struts to spring

命中此 URL 时不会命中断点,控制台中也不会出现错误。请就上述问题提出建议

因为你的servlet url映射已经包含了/spring,所以你不需要把它包含在@RequestMapping中。

试试这个:

@RequestMapping(value = "/createUser/", method = RequestMethod.POST)

根据 servlet 映射,只允许一个 url localhost:8080/context/spring/未与控制器映射的 url。

当我们定义一个servlet-mapping时,我们使用的是SimpleUrlHandlerMapping。为了理解 servlet url 映射,让我们定义一个 servlet 映射:

<servlet-mapping>
        <servlet-name>user</servlet-name>
        <url-pattern>/spring/*</url-pattern>
</servlet-mapping>

现在处理程序实际上将使用 * 部分来查找控制器。它不会搜索/spring/createUser,它只会搜索/createUser 来查找相应的控制器。

@RequestMapping("/createUser")

在您的情况下,您需要将 url 更改为 localhost:8080/spring/spring/createUser 或从控制器@RequestingMapping(/createUser)中删除前缀。

Spring 以

不同的方式解释 url /spring/createUser//spring/createUser至少在我刚刚测试POST方法中)。

将您的@RequestMapping网址更改为 /spring/createUser

另请注意,您调用的 url /spring/createUser没有尾部斜杠("/")。

您的方法

@RequestMapping(value = "/spring/createUser", method = RequestMethod.POST)

希望这有帮助。

最新更新