当前位置: 首页 > 知识库问答 >
问题:

未找到Spring MVC路线-404

曾喜
2023-03-14

我有一个Spring 4.1.0 MVC项目托管在WildFly 10服务器中。并且我无法在没有得到404的情况下向其发送请求。这是我的控制器和方法声明之一:

@Controller
@RequestMapping("/rest/message")
public class HomeController {
    @RequestMapping(method = RequestMethod.POST, value = "/register")
    public @ResponseBody PostResult register(HttpServletRequest request, @RequestHeader("userUid") String userUid,
        @RequestHeader("Uid") String Uid, @RequestHeader(value = "firstName", required = false) String FirstName,
        @RequestHeader(value = "lastName", required = false) String LastName,
        @RequestHeader(value = "emailAddress", required = false) String EmailAddress,
        @RequestHeader(value = "userName", required = false) String UserName,
        @RequestHeader(value = "country", required = false) String Country,
        @RequestHeader(value = "password", required = false, defaultValue = "") String Password,
        @RequestHeader(value = "deviceId", required = false, defaultValue = "") String deviceID) {
}

}

我在用邮递员把请求发到http://localhost:8080/rest/message/register.我回复“404-未找到”。我可以成功导航到http://localhost:8080查看WildFly的启动屏幕。我还可以在控制器的构造函数中设置一个断点来查看它的构造。此外,我在服务器日志中看到以下内容,这让我相信路由实际上已经注册:

INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/rest/message/register],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public com.justPick5.jp5.returnObjects.PostResult com.justPick5.jp5.HomeController.register(javax.servlet.http.HttpServletRequest,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)

为了排除参数成为问题的可能性,控制器中有一个简单的方法:

@RequestMapping(method = RequestMethod.GET, value = "/testNoParams")
public @ResponseBody PostResult testNoParams() {
    System.out.println("testNoParams");
    return null;
}

从邮递员到http://localhost:8080/rest/message/testNoParams结果也一样。

这是我的网站。xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
    <context-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.support.AnnotationConfigWebApplicationContext
        </param-value>
    </context-param>


    <!-- Processes application requests -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>

        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

感谢您的帮助。

共有2个答案

朱雅惠
2023-03-14

我也有同样的问题,通过将类注释从@Controller更改为@RestController

景明诚
2023-03-14

我猜这个问题与上下文路径有关。http://localhost:8080/../rest/message/testNoParams

如果我没有错,你需要把正确的路径放在(/../)上,也就是说,WAR已经用其他名称部署,可能是你走错了路径。

这种情况经常发生在野蝇部署中。

e、 g:战争部署是ABC。1.0.0-BUILD-SNAPSHOT。战争,但我们经常在我们的道路上撞到。

所以,请纠正上下文路径。你可以在野蝇-

 类似资料:
  • 我有一个问题: 我已经做了: 作曲家更新

  • 我在routes.php中定义了一个简单的路由,位于任何路由之上: 当通过http访问时,它可以工作,但它提供: 当我试图通过https访问时。 我在网上搜索了很多,但没有找到任何解决方案。 我的主页正在加载超文本传输协议和https,但其他路由不工作。我需要一些额外的配置吗? 编辑: .htaccess: 请引导我。 塔克斯。

  • 我想做我的第一个码头集装箱 我安装了dokcer-ce,遵循ubuntu的docker教程。 我创建一个文件夹,并把我的Dockerfile在它。 在这个文件夹中,我做了一个: 我总是有这样的输出 编辑:我在sshd,没有工作?!

  • 我试图将我的posts.delete链接到我的index.blade.php,但我一直得到Symfony\Component\Routing\Exc0019\RouteNotFoundExcema 指数刀身php PostLikeController web.php 喜欢php 我检查了我的路线:列表,我发现它在那里 ----------------------------------------

  • 我有一个Django Vue。我正在尝试连接到django频道的js聊天应用程序。 要访问任何聊天室,您只需访问: http://localhost:8080/rooms/"id"/ 我的javascript连接如下所示: 我的consumers.py: 我的routing.py: 我的项目routing.py: 问题是,我无法连接到websocket,我的django服务器说: [失败实例:回溯

  • 我在我的SpringMVC项目中得到了这个错误。我必须在浏览器中手动添加完整的路径来运行代码,但我不能直接运行它。 web.xml: