Java 请求未在spring中传递给rest控制器

Java 请求未在spring中传递给rest控制器,java,spring,spring-mvc,spring-restcontroller,Java,Spring,Spring Mvc,Spring Restcontroller,我的rest控制器如下所示: @RestController public class SmsRestController { @RequestMapping(value = "/sendSMS", method = RequestMethod.POST, consumes = "application/json") public ResponseEntity sendMessage(SmsBean smsBean) { System.out.println("

我的rest控制器如下所示:

@RestController
public class SmsRestController {

    @RequestMapping(value = "/sendSMS", method = RequestMethod.POST, consumes = "application/json")
    public ResponseEntity sendMessage(SmsBean smsBean) {
        System.out.println("form data received");
        return new ResponseEntity("Messages Sent", HttpStatus.OK);
    }
}
$http.post('/sendSMS.html', data).success(success).error(error);
和部署描述符:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>

    <display-name>BulkSMS2</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>BulkSMS2</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>BulkSMS2</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

页面以静态文件的形式打开,当我单击submit时,我向rest控制器发送了一个ajax请求,但是没有调用它。如果用户看到输出,则应打印此行
System.out.println(“收到的表单数据”)位于控制器内部

您错过了路径信息
/BulkSMS
并在请求路径中添加了
.html
,请尝试以下操作,可能会对您有所帮助;)

或者您可以从ajax请求中删除
/BulkSMS
,如下所示:

@RestController
public class SmsRestController {

    @RequestMapping(value = "/sendSMS", method = RequestMethod.POST, consumes = "application/json")
    public ResponseEntity sendMessage(SmsBean smsBean) {
        System.out.println("form data received");
        return new ResponseEntity("Messages Sent", HttpStatus.OK);
    }
}
$http.post('/sendSMS.html', data).success(success).error(error);

您丢失了路径信息
/BulkSMS
,并在请求路径中添加了
.html
,请尝试以下操作,可能会对您有所帮助;)

或者您可以从ajax请求中删除
/BulkSMS
,如下所示:

@RestController
public class SmsRestController {

    @RequestMapping(value = "/sendSMS", method = RequestMethod.POST, consumes = "application/json")
    public ResponseEntity sendMessage(SmsBean smsBean) {
        System.out.println("form data received");
        return new ResponseEntity("Messages Sent", HttpStatus.OK);
    }
}
$http.post('/sendSMS.html', data).success(success).error(error);

您已经将servlet映射到“/”


您应该将servlet映射到“/bulkSMS/*”

您已经将servlet映射到“/”


您应该将servlet映射到“/bulkSMS/*”

如下:
servlet映射>BulkSMS2/BulkSMS2/*
?在我上面的评论中尝试过,并在控制台中抛出错误:
http://localhost:8084/BulkSMS2/sendSMS 加载资源失败:服务器响应状态为404(未找到)
像这样:
servlet映射>BulkSMS2/BulkSMS2/*
?在我上面的评论中尝试了这样的操作,并在控制台中抛出错误:
http://localhost:8084/BulkSMS2/sendSMS 加载资源失败:服务器响应状态为404(未找到)
无效..引发错误:
http://localhost:8084/BulkSMS2/sendSMS 加载资源失败:服务器响应状态为404(未找到)
OK,您有
后缀
=
.html
,因此您应该将其添加到ajax调用中。请再次检查我的答案。类似错误:
http://localhost:8084/sendSMS.html 加载资源失败:服务器响应状态为404(未找到)
@Satyadev通过这种方式,您是否添加了
@RequestMapping(value=“/BulkSMS”)
在控制器中?不,我以前没有添加,但刚才我添加了它并尝试了,但仍然是相同的错误不起作用..抛出错误:
http://localhost:8084/BulkSMS2/sendSMS 加载资源失败:服务器响应的状态为404(未找到)
确定,您有
后缀
=
.html
,因此,您应该将其添加到ajax调用中。请再次检查我的答案。类似错误:
http://localhost:8084/sendSMS.html 加载资源失败:服务器响应状态为404(未找到)
@Satyadev通过这种方式,您是否添加了
@RequestMapping(value=“/BulkSMS”)
在控制器中?不,我以前没有添加,但刚才我添加了它并尝试了,但仍然是相同的错误